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节假日
}
}
计算中国假期的方法
最新推荐文章于 2024-05-06 21:24:07 发布