计算中国假期的方法

来源:互联网 发布:linux 进程绑核 编辑:程序博客网 时间:2024/05/21 12:48
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节假日}}

原创粉丝点击