WEB开发网      濠电娀娼ч崐濠氬疾椤愶附鍋熸い鏍ㄧ〒闂勫嫰鏌﹀Ο渚Ц闁诲氦顕ч湁婵犲﹤楠告禍鍓х磼鏉堛劌绗氶柟宄版嚇閹晠宕归銈嗘濠电偞鍨堕幐鎾磻閹捐秮褰掓偐閻戞﹩妫勯梺鎼炲妼鐎涒晝绮嬪澶樻晝闁挎繂鏌婇敃鍌涚厵閻庢稒锚閻忥絾绻濇繝鍐ㄧ伌闁诡垰鍟村畷鐔碱敂閸♀晙绱樺┑鐐差嚟婵儳螞閸曨剚鍙忛柍鍝勬噹缁€澶嬬箾閹存繄锛嶆鐐灲閹綊宕惰濡插鏌涢妸銉ヮ劉缂佸倸绉归弫鎾绘晸閿燂拷 ---闂備焦瀵уú鈺呭箯閿燂拷
开发学院软件开发Java 天气预报代码分析与实现 阅读

天气预报代码分析与实现

 2009-09-17 00:00:00 来源:WEB开发网 闂備線娼уΛ鎾箯閿燂拷闂備礁鎲¢崹鐢垫崲閹扮増鍎嶆い鎺戝€甸崑鎾斥槈濞嗗秳娌紓鍌氱▌閹凤拷濠电姭鎷冮崨顓濈捕闂侀潧娲ゅú銊╁焵椤掍胶鈯曢柕鍥╁仧缁辩偤鏁撻敓锟�闂備線娼уΛ鎾箯閿燂拷  闂備胶枪缁绘鈻嶉弴銏犳瀬闁绘劖顐煎☉妯锋瀻闁归偊鍓涘▔姘舵⒑閸涘⿴娈旀繛灞傚妼閳绘捇骞嬪┑鎰濡炪倖姊婚崢褏鎲撮敓锟�
核心提示:在做网站中,遇到天气预报接口是避免不了的,天气预报代码分析与实现,天气预报的实现主要涉及到以下几个技术点:正则表达式匹配从中央气象局的天气预报网页,这种方式下,固定城市实现比较简单,不同城市需要一个对照表

在做网站中,遇到天气预报接口是避免不了的,天气预报的实现主要涉及到以下几个技术点:

正则表达式匹配从中央气象局的天气预报网页,这种方式下,固定城市实现比较简单,不同城市需要一个对照表,来完成这个映射工作

IP识别获取城市(本文实现方式)

利用WebService服务接口获取城市天气(本文实现方式)

已拉取的城市天气当日缓存(本文实现方式)

定义缓存:

Java代码  

private static HashMap<String,JSONObject> hmCache = new HashMap();

缓存通过TimerTask定时清空前几天实现,代码如下:

Java代码    

  public static void cleanCache() { 
   if(isStart) return; 
   isStart = true; 
    TimerTask task = new TimerTask() { 
      public void run() {     
       Iterator it = hmCache.entrySet().iterator(); 
       while (it.hasNext()) { 
       Map.Entry entry = (Map.Entry) it.next(); 
       Object key = entry.getKey(); 
       String today = DateTimeUtil.format(new Date(),"yyyyMMdd"); 
       if(key.toString().indexOf(today)>=0){ 
        it.remove(); 
        hmCache.remove(key); 
       }   
       }       
      } 
    }; 
    Timer timer = new Timer(); 
    timer.schedule(task, Calendar.getInstance ().getTime(), 24*3600 * 1000); 
 
   } 

1 2  下一页

Tags:天气预报 代码 分析

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接