计算中国假期的方法

package util;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature;

public class ChinaHolidayUtil {
	public static String requestv2(String httpArg) {
		String httpUrl = "http://tool.bitefu.net/jiari/";
		//查询假日接口返回值说明:  工作日对应结果为 0, 休息日对应结果为 1, 节假日对应的结果为 2;
		httpUrl = httpUrl + "?d=" + httpArg;
		BufferedReader reader = null;
		String result = null;
		StringBuffer sbf = new StringBuffer();
		try {
			URL url = new URL(httpUrl);
			HttpURLConnection connection = (HttpURLConnection) url.openConnection();
			connection.setRequestMethod("GET");
			connection.connect();
			InputStream is = connection.getInputStream();
			reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
			String strRead = null;
			while ((strRead = reader.readLine()) != null) {
				sbf.append(strRead);
				sbf.append("\r\n");
			}
			reader.close();
			result = sbf.toString();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return result.trim();
	}
	/**
	 * @param urlAll
	 *            :请求接口
	 * @param httpArg
	 *            :参数
	 * @return 返回结果
	 */
	public static String request(String httpArg) {
		String httpUrl = "http://www.easybots.cn/api/holiday.php";
		//查询假日接口返回值说明:  工作日对应结果为 0, 休息日对应结果为 1, 节假日对应的结果为 2;
		BufferedReader reader = null;
		String result = null;
		StringBuffer sbf = new StringBuffer();
		httpUrl = httpUrl + "?d=" + httpArg;

		try {
			URL url = new URL(httpUrl);
			HttpURLConnection connection = (HttpURLConnection) url.openConnection();
			connection.setRequestMethod("GET");
			connection.connect();
			InputStream is = connection.getInputStream();
			reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
			String strRead = null;
			while ((strRead = reader.readLine()) != null) {
				sbf.append(strRead);
				sbf.append("\r\n");
			}
			reader.close();
			result = sbf.toString();
			Map<String, Object> map =  ChinaHolidayUtil.strJson2Map(result);
			String res = (String) map.get(httpArg);
			return res;
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}

    private static List<Map<String, Object>> json2List(Object json) {  
        JSONArray jsonArr = (JSONArray) json;  
        List<Map<String, Object>> arrList = new ArrayList<Map<String, Object>>();  
        for (int i = 0; i < jsonArr.size(); ++i) {  
            arrList.add(strJson2Map(jsonArr.getString(i)));  
        }  
        return arrList;  
    }  
	
	 public static Map<String, Object> strJson2Map(String json) {  
	        JSONObject jsonObject = JSONObject.parseObject(json);  
	        Map<String, Object> resMap = new HashMap<String, Object>();  
	        Iterator<Entry<String, Object>> it = jsonObject.entrySet().iterator();  
	        while (it.hasNext()) {  
	            Map.Entry<String, Object> param = (Map.Entry<String, Object>) it.next();  
	            if (param.getValue() instanceof JSONObject) {  
	                resMap.put(param.getKey(), strJson2Map(param.getValue().toString()));  
	            } else if (param.getValue() instanceof JSONArray) {  
	                resMap.put(param.getKey(), json2List(param.getValue()));  
	            } else {  
	                resMap.put(param.getKey(), JSONObject.toJSONString(param.getValue(), SerializerFeature.WriteClassName));  
	            }  
	        }  
	        return resMap;  
	    }
	public static void main(String[] args) {
		// 判断今天是否是工作日 周末 还是节假日
		SimpleDateFormat f = new SimpleDateFormat("yyyyMMdd");
		String httpArg = f.format(new Date());
		System.out.println(httpArg);
		String jsonResult = requestv2(httpArg);
		System.out.println(jsonResult);

		
		
		for(int i=1;i<=9;i++) {
			httpArg = "2017100";
			httpArg = httpArg+i;
			jsonResult = request(httpArg);
			System.out.println(httpArg + " : " + jsonResult);
		}
		
		// 0 上班 1周末 2节假日
	}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值