CalebMonster

java获取国家法定节假日和周末

  • 调用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 = response.body().string();
          } catch (

分类:

技术点:

相关文章: