import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.SocketTimeoutException;
import java.net.URL;
import java.net.URLConnection;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
 
import net.sf.json.JSONObject;
 
 
public class Weather {
String cityid;
URLConnection connectionData;
StringBuilder sb;
BufferedReader br;
JSONObject jsonData;
JSONObject info;
public Weather(String cityid) throws IOException,NullPointerException{
this.cityid = cityid;
URL url = new URL("http://m.weather.com.cn/data/"+cityid+".html");
connectionData = url.openConnection();
connectionData.setConnectTimeout(1000);
try{
br = new BufferedReader(new InputStreamReader(connectionData.getInputStream(), "utf-8"));
sb = new StringBuilder();
String line = null;
while((line = br.readLine()) != null)
sb.append(line);
}catch (SocketTimeoutException e) {
System.out.println("连接超时");
}catch(FileNotFoundException e){
System.out.println("加载文件出错");
}
String datas = sb.toString();
jsonData = JSONObject.fromObject(datas);
info = jsonData.getJSONObject("weatherinfo");
List> list = new ArrayList>();
for(int i=1;i<=6;i++){
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DAY_OF_YEAR,i-1);
Date date = cal.getTime();
SimpleDateFormat sf = new SimpleDateFormat("yyyy年MM月dd日");
Map map = new HashMap();
map.put("city", info.getString("city").toString());
map.put("date_y", sf.format(date));
map.put("week", getWeek(cal.get(Calendar.DAY_OF_WEEK)));
map.put("fchh", info.getString("fchh").toString());
map.put("weather", info.getString("weather"+i).toString());
map.put("temp", info.getString("temp"+1).toString());
map.put("wind", info.getString("wind"+1).toString());
map.put("fl", info.getString("fl"+1).toString());
map.put("index", info.getString("index").toString());
map.put("index_uv", info.getString("index_uv").toString());
map.put("index_tr", info.getString("index_tr").toString());
map.put("index_co", info.getString("index_co").toString());
map.put("index_cl", info.getString("index_cl").toString());
map.put("index_xc", info.getString("index_xc").toString());
map.put("index_d", info.getString("index_d").toString());
list.add(map);
}
for(int j=1;j
Map wMap = list.get(j);
System.out.println(wMap.get("city")+"\t"+wMap.get("date_y")+"\t"+wMap.get("week")+wMap.get("weather")+"\t"+wMap.get("temp")+"\t"+wMap.get("index_uv"));
}
}
public String getWeek(int iw){
String weekStr = "";
switch (iw) {
case 1:
weekStr = "星期天";
break;
case 2:
weekStr = "星期一";
break;
case 3:
weekStr = "星期二";
break;
case 4:
weekStr = "星期三";
break;
case 5:
weekStr = "星期四";
break;
case 6:
weekStr = "星期五";
break;
case 7:
weekStr = "星期六";
break;
default:
break;
}
return weekStr;
}
public static void main(String[] args){
try{
new Weather("101010100");//北京市
}catch (Exception e) {
e.printStackTrace();
}
}
}

获取天气预报java代码的更多相关文章

  1. JQuery-Ajax后台提交数据与获取数据 Java代码

    function jqajax(){ var urlName = $("#urlName").val(); var urla = $("#url").val() ...

  2. java获取天气预报的信息

    运行效果: 主要功能: 1,jsp页面输入省份和城市 根据条件获取当地的天气信息 2,java代码 利用第三方的省份和城市的路径地址 本工程主要实现java获取天气预报的信息步骤1,创建工程weath ...

  3. jsp中Java代码中怎么获取jsp页面元素

    举例,页面元素<td><input   value="${sl }" type="text" id="sl" name=& ...

  4. java代码中获取进程process id(转)

    另一方面,线程ID=进程ID+内部线程对象ID并不成立,    参考: blog.csdn.net/heyetina/article/details/6633901     如何在java代码中获取进 ...

  5. 用JAVA代码获取Weblogic配置的JNDI 数据源连接

    第一步:生成与JDK版本对应的weblogicjar,利用cmd 进入到weblogic_home 路径下进入到server/lib目录,然后运行  JDK  1.6 命令 "java -j ...

  6. Java代码中获取Json的key值

    测试json字符串: {"access_token":"hkbQl5o_l67dZ7_vJRATKBwTLk9Yj5QyMuOJThAr8Baj0xWf4wxW1p4ym ...

  7. java代码获取客户端的真实ip

    java代码获取客户端的真实ip protected String getIpAddr(HttpServletRequest request) { String ip = request.getHea ...

  8. Java代码获取NTP服务器时间

    apache的commons-net包下面有ntp相关的实现类,主要类有: 1  org.apache.commons.net.ntp.NTPUDPClient ? 1  org.apache.com ...

  9. JNDI实现服务器(tomcat)与数据库(mysql)连接的数据源配置以及获取连接的java代码

    ->首先将mysql的jar包导入到tomcat/lib文件夹下 ->然后在tomcat/conf/context.xml文件中配置以下内容 <Resource name=" ...

随机推荐

  1. 做新时代的奋斗者!(好吧,我还没弄出python的编译环境)

    Pictures: 今日分来的补记来嘞: Game 1:Guess the number. Python包含许多内建的函数,有些函数存在于称为模块的单独的程序中,可以使用import语句把它们的模块导 ...

  2. Git的基本使用 -- 创建本地仓库

    下载安装 Git-2.25.0-64-bit .exe 查看是否安装成功 git --version 创建本地仓库 创建一个文件夹用于存放项目文件 在创建好的文件中右键选择 Git Bash Here ...

  3. C#中对虚拟属性和抽象属性的重写有什么异同

           public abstract class A         {             //抽象属性不能有实现代码             public abstract strin ...

  4. SqlDataReader阅读器关闭时尝试调用 HasRows 无效

    SqlDataReader阅读器关闭时尝试调用 HasRows 无效 原创长白山上放羊娃 发布于2018-07-25 00:29:27 阅读数 538  收藏 展开 在SqlHelper中封装好的Sq ...

  5. The Reason Why Cosmetic Airless Bottles Are Widely Used

    The contents of the Cosmetic Airless Bottles    can be isolated from the air, to prevent the product ...

  6. bugku 宽带信息泄露

    首先下载文件 下载完成后发现是一个后缀名为 bin 的文件 然后找百度查一下这是什么文件的后缀名 看一下题目 然后用软件routerpassview打开(搜的教程) 然后打开文件 搜索username ...

  7. HBase 启动后HMaster进程自动消失

    原因分析 1.hadoop 与 hbase 版本不兼容,导致的异常. 2.log日志信息显示 org.apache.hadoop.hbase.TableExistsException: hbase:n ...

  8. Go流程结构(if)

    一.程序的流程结构 程序的流程控制结构一共有三种:顺序结构,选择结构,循环结构. 顺序结构:从上向下,逐行执行. 选择结构:条件满足,某些代码才会执行.0-1次 分支语句:if,switch,sele ...

  9. 每日扫盲(五):RPC(Remote Procedure Call)

    作者:洪春涛链接:https://www.zhihu.com/question/25536695/answer/221638079来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注 ...

  10. Maven工程pom中定义jdk版本

    今天把之前做的项目导进eclipse,然后发现报错,一些类在1.6中不支持,需要将JDK版本设置为1.7,我直接通过eclipse中的提示进行更改,然后update project一下,发现又回到了S ...