📄 weather.java~1~
字号:
package wapserver;/** * <p>Title: </p> * <p>Description: </p> * <p>Copyright: Copyright (c) 2004</p> * <p>Company: </p> * @author unascribed * @version 1.0 */import java.util.*;import java.io.*;public class Weather { //54511,北京,北京,116.17,39.56,54.7,100000,010,04:46,19:47, //0624,0625,00404,10000,23021,52222,63078,73051,13000, // 0626,00402,10000,22133, // 0627,00200,10000,22236, // 0628,00101,10000,21931, // 0629,00101,10000,22030 public Weather() { } public String Get_Weather_B_Url(Vector v,int day){ String w = Get_Weather(v,day); String result = "无数据"; StringTokenizer st = new StringTokenizer(w,"-"); if(st.hasMoreElements() ){ result = (String)st.nextElement() ; } result = Utility.getWeatherSmallPic(result); return result; } public String Get_Weather_E_Url(Vector v,int day){ String w = Get_Weather(v,day); String result = "无数据"; StringTokenizer st = new StringTokenizer(w,"-"); if(st.hasMoreElements() ){ result = (String)st.nextElement() ; } if(st.hasMoreElements() ){ result = (String)st.nextElement() ; } result = Utility.getWeatherSmallPic(result); return result; } public String Get_Weather(Vector v,int day){ //54511(1),北京,北京,116.17,39.56,54.7,100000,010,04:46,19:47(10), //0624,0625,00404,10000,23021,52222,63078,73051,13000(19), // 0626,00402,10000,22133(23), // 0627,00200,10000,22236(27), // 0628,00101,10000,21931(31), // 0629,00101,10000,22030,08:00(36) String result = "无数据"; try{ if(day == 1){ result = (String)v.get(12); }else if(day == 2){ result = (String)v.get(20); }else if(day == 3){ result = (String)v.get(24); }else if(day == 4){ result = (String)v.get(28); }else if(day == 5){ result = (String)v.get(32); } }catch(Exception e){ } result = decodeWeather(result); return result; } public String Get_Wind(Vector v,int day){ //54511(1),北京,北京,116.17,39.56,54.7,100000,010,04:46,19:47(10), //0624,0625,00404,10000,23021,52222,63078,73051,13000(19), // 0626,00402,10000,22133(23), // 0627,00200,10000,22236(27), // 0628,00101,10000,21931(31), // 0629,00101,10000,22030,08:00(36) String result = "无数据"; try{ if(day == 1){ result = (String)v.get(13); }else if(day == 2){ result = (String)v.get(21); }else if(day == 3){ result = (String)v.get(25); }else if(day == 4){ result = (String)v.get(29); }else if(day == 5){ result = (String)v.get(33); } }catch(Exception e){ } result = decodeWind(result); return result; } public String Get_Temp(Vector v,int day){ //54511(1),北京,北京,116.17,39.56,54.7,100000,010,04:46,19:47(10), //0624,0625,00404,10000,23021,52222,63078,73051,13000(19), // 0626,00402,10000,22133(23), // 0627,00200,10000,22236(27), // 0628,00101,10000,21931(31), // 0629,00101,10000,22030,08:00(36) String result = "无数据"; try{ if(day == 1){ result = (String)v.get(14); }else if(day == 2){ result = (String)v.get(22); }else if(day == 3){ result = (String)v.get(26); }else if(day == 4){ result = (String)v.get(30); }else if(day == 5){ result = (String)v.get(34); } }catch(Exception e){ } result = decodeTemp(result); return result; } //================================ public Vector GetAll(String cityName,String path){//今天 通过城市名查找到行,并且将其分解到Vector中 String str = GetLineByCity(cityName,path); Vector v = new Vector(); v.removeAllElements() ; StringTokenizer st = new StringTokenizer(str,","); System.out.println(st.toString() ); while(st.hasMoreElements() ){ v.addElement((String)st.nextElement()) ; } return v; } public Vector GetPreAll(String cityName,String path){//昨天 通过城市名查找到行,并且将其分解到Vector中 String str = GetPreLineByCity(cityName,path); Vector v = new Vector(); v.removeAllElements() ; StringTokenizer st = new StringTokenizer(str,","); System.out.println(st.toString() ); while(st.hasMoreElements() ){ v.addElement((String)st.nextElement()) ; } return v; } public String GetLineByCity(String cityName,String path){//获得 当天 的5天预报行 String result = "无数据";//"54511,北京,北京,116.17,39.56,54.7,31,1,晴,32℃-18℃,风力小于3级,强,可吸入颗粒物,良,2,晴,18℃-33℃,风力小于3级,3,晴,19℃-31℃,风力小于3级,05:15,04:49,19:35"; for(int i = 24;i>=0;i--){//找到最新的数据文件,从24小时到着找。 String hh = ""; if(i<10){ hh = "0"+String.valueOf(i); }else{ hh = String.valueOf(i); } File file = new File(path+"forecast"+Utility.getFileDateString()+hh+".txt"); System.out.println(path+"forecast"+Utility.getFileDateString()+hh+".txt"); if(file.exists() && file.length() >0 ){ System.out.println("find file"); try{ BufferedReader br = new BufferedReader((new FileReader(file))); while(!(result = br.readLine() ).equals("") ){ if(result.indexOf(cityName) != -1){ System.out.println(result); br.close() ; return result; } } }catch(Exception e){ e.printStackTrace() ; } } } return result; } public String GetPreLineByCity(String cityName,String path){//获得 昨天 的5天预报行 String result = "无数据";//"54511,北京,北京,116.17,39.56,54.7,31,1,晴,32℃-18℃,风力小于3级,强,可吸入颗粒物,良,2,晴,18℃-33℃,风力小于3级,3,晴,19℃-31℃,风力小于3级,05:15,04:49,19:35"; for(int i = 24;i>=0;i--){ String hh = ""; if(i<10){ hh = "0"+String.valueOf(i); }else{ hh = String.valueOf(i); } File file = new File(path+"forecast"+Utility.getPreFileDateString()+hh+".txt"); System.out.println(path+"forecast"+Utility.getPreFileDateString()+hh+".txt"); if(file.exists() && file.length() >0 ){ System.out.println("find file"); try{ BufferedReader br = new BufferedReader((new FileReader(file))); while(!(result = br.readLine() ).equals("") ){ if(result.indexOf(cityName) != -1){ System.out.println(result); br.close() ; return result; } } }catch(Exception e){ e.printStackTrace() ; } } } return result; } public String Phenomena(String strData){ if (strData.equals("00")) return "晴"; else if (strData.equals("01")) return "多云"; else if (strData.equals("02")) return "阴"; else if (strData.equals("03")) return "阵雨"; else if (strData.equals("04")) return "雷阵雨"; else if (strData.equals("05")) return "雷阵雨并伴有冰雹"; else if (strData.equals("06")) return "雨加雪"; else if (strData.equals("07")) return "小雨"; else if (strData.equals("08")) return "中雨"; else if (strData.equals("09")) return "大雨"; else if (strData.equals("10")) return "暴雨"; else if (strData.equals("11")) return "大暴雨"; else if (strData.equals("12")) return "特大暴雨"; else if (strData.equals("13")) return "阵雪"; else if (strData.equals("14")) return "小雪"; else if (strData.equals("15")) return "中雪"; else if (strData.equals("16")) return "大雪"; else if (strData.equals("17")) return "暴雪"; else if (strData.equals("18")) return "雾"; else if (strData.equals("19")) return "冻雨"; else if (strData.equals("20")) return "沙尘暴"; else if (strData.equals("21")) return "小雨-中雨"; else if (strData.equals("22")) return "中雨-大雨"; else if (strData.equals("23")) return "大雨-暴雨"; else if (strData.equals("24")) return "暴雨-大暴雨"; else if (strData.equals("25")) return "大暴雨-特大暴雨"; else if (strData.equals("26")) return "小雪-中雪"; else if (strData.equals("27")) return "中雪-大雪"; else if (strData.equals("28")) return "大雪-暴雪"; else if (strData.equals("29")) return "浮尘"; else if (strData.equals("30")) return "扬沙"; else if (strData.equals("31")) return "强沙尘暴"; return "未知天气情况";}public String WindWay(String str){ if (str.equals("0")) return "无风"; if (str.equals("1")) return "东北风"; if (str.equals("2")) return "东风"; if (str.equals("3")) return "东南风"; if (str.equals("4")) return "南风"; if (str.equals("5")) return "西南风"; if (str.equals("6")) return "西风"; if (str.equals("7")) return "西北风"; if (str.equals("8")) return "北风"; if (str.equals("9")) return "旋转,不定"; return "未知风向";}public String WindPower(String str){ //str.TrimLeft(str); if (str.equals("0")) return "<3"; //return "0"; if (str.equals("1")) return "3~4"; //return "1"; if (str.equals("2")) return "4~5"; //return "2"; if (str.equals("3")) return "5~6"; //return "3"; if (str.equals("4")) return "6~7"; //return "4"; if (str.equals("5")) return "7~8"; //return "5"; if (str.equals("6")) return "8~9"; //return "6"; if (str.equals("7")) return "9~10"; //return "7"; if (str.equals("8")) return "10~11"; //return "8"; if (str.equals("9")) return "11~12"; //return "9"; return "未知风力";}public String decodeTemp(String code){ String result ="未知温度"; code = code.substring(1,code.length() ); String t_b = code.substring(0,2); String t_e = code.substring(2,4) ; int t_bI = 0,t_eI = 0; if(Integer.parseInt(t_b)>=50 ){ t_bI = 50 - Integer.parseInt(t_b); }else{ t_bI = Integer.parseInt(t_b); } if(Integer.parseInt(t_e)>=50 ){ t_eI = 50 - Integer.parseInt(t_e); }else{ t_eI = Integer.parseInt(t_e); } result = String.valueOf(t_bI)+"℃-"+String.valueOf(t_eI)+"℃"; return result ;}public String decodeWeather(String code){ String result = "未知天气"; code = code.substring(1,code.length() ); String w_b = code.substring(0,2); String w_e = code.substring(2,4) ; result = Phenomena(w_b)+"-"+Phenomena(w_e); return result;}public String decodeWind(String code){ String result = "未知风力风向"; code = code.substring(1,code.length() ); String f_x_b = code.substring(0,1); String f_l_b = code.substring(1,2) ; String f_x_e = code.substring(2,3) ; String f_l_e = code.substring(3,4) ; result = WindWay(f_x_b)+WindPower(f_l_b)+"-"+WindWay(f_x_e)+WindPower(f_l_e); return result;} public static void main(String[] args) { Weather weather1 = new Weather(); System.out.println(weather1.Get_Wind(weather1.GetPreAll("北京","D:\\WAPServer\\jsp\\db\\"),2) ); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -