-
调用api获取 所需maven配置(每次使用前跑一下api 看是否失效,相对简单一些不需要百度查当前年份的节假日和补班日期)
<!-- fastjson -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.47</version>
</dependency>
<!-- okhttp -->
<dependency>
<groupId>com.squareup.okhttp</groupId>
<artifactId>okhttp</artifactId>
<version>3.10.0</version>
</dependency>
int year = 2021;
int month = 0;
/**
* java获取国家法定节假日和周末
*
* @param year
* @param month
* @return
*/
public static Set<String> JJR(int year, int month) {
//获取所有的周末
Set<String> monthWekDay = getMonthWekDay(year, month);
//http://timor.tech/api/holiday api文档地址
Map jjr = getJjr(year, month + 1);
Integer code = (Integer) jjr.get("code");
if (code != 0) {
return monthWekDay;
}
Map<String, Map<String, Object>> holiday = (Map<String, Map<String, Object>>) jjr.get("holiday");
Set<String> strings = holiday.keySet();
for (String str : strings) {
Map<String, Object> stringObjectMap = holiday.get(str);
Integer wage = (Integer) stringObjectMap.get("wage");
String date = (String) stringObjectMap.get("date");
//筛选掉补班
if (wage.equals(1)) {
monthWekDay.remove(date);
} else {
monthWekDay.add(date);
}
}
return monthWekDay;
}
/**
* 获取节假日不含周末
*
* @param year
* @param month
* @return
*/
private static Map getJjr(int year, int month) {
String url = "http://timor.tech/api/holiday/year/";
OkHttpClient client = new OkHttpClient();
Response response;
//解密数据
String rsa = null;
Request request = new Request.Builder()
.url(url)
.get()
.addHeader("Content-Type", "application/x-www-form-urlencoded")
.build();
try {
response = client.newCall(request).execute();
rsa