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

package com.lxh.config.utils;import com.alibaba.fastjson.JSONObject;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.*;/*** @ClassName: Holiday* @Author: lxh* @Description: 节假日* @Date: 2022/3/19 17:29*/
public class HolidayUtils {/*** 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 LinkedHashMap 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 (IOException e) {e.printStackTrace();}return JSONObject.parseObject(rsa, LinkedHashMap.class);}/*** 获取周末  月从0开始* @param year /* @param month /* @return /*/public static Set<String> getMonthWekDay(int year, int month) {Set<String> dateList= new LinkedHashSet<>();SimpleDateFormat simdf = new SimpleDateFormat("yyyy-MM-dd");Calendar calendar = new GregorianCalendar(year, month, 1);int i = 1;while (calendar.get(Calendar.YEAR) < year + 1) {calendar.set(Calendar.WEEK_OF_YEAR, i++);calendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);if (calendar.get(Calendar.YEAR) == year) {dateList.add(simdf.format(calendar.getTime()));}calendar.set(Calendar.DAY_OF_WEEK, Calendar.SATURDAY);if (calendar.get(Calendar.YEAR) == year) {dateList.add(simdf.format(calendar.getTime()));}}return dateList;}}

需要的依赖

        <!-- okhttp 获取节假日--><!--https://www.pangugle.com/lib/maven/view/com.squareup.okhttp3/okhttp.html--><dependency><groupId>com.squareup.okhttp3</groupId><artifactId>okhttp</artifactId><version>3.14.9</version></dependency>

java获取国家法定节假日和周末相关推荐

  1. java获取国家法定节假日(不依赖API)

    java获取国家法定节假日, 由此可获取每月第一个工作日和最后一个工作日 (不依赖API,主要是因为API接口不可靠或计费,此工具依赖国务院发布的节假日基础信息进行解析) 本工具仅供参考学习.各类数据 ...

  2. 【Java获取国家法定节假日三种工具类其三】

    使用GitHub开源Api调用获取国家法定节假日 public class HolidayUtils {/*** 请求第三方接口的方法** @param url 请求的url* @return*/pu ...

  3. 【现成工具】java获取国家法定节假日包含指定月份节假日和周末

    首先感谢大佬提供的免费API接口调用,http://timor.tech/api/holiday .该API工具类可以获取到国家法定节假日,此节假日为严格按照国家要求的双休和法定节假日并且包含节假日的 ...

  4. 【Java获取国家法定节假日三种工具类其一】

    最全的时间工具类 开箱即用 public abstract class MyDateUtil {/*** 时区误差*/private static long timeZoneError = 0;/** ...

  5. 【Java获取国家法定节假日三种工具类其二】

    使用实体类返回更加清晰 public class Holiday {private String day;private String name;private boolean work;privat ...

  6. 去除法定节假日以及周末,计算请假时间

    业务需要,不废话,直接说核心. 直接上最佳解决方案,那就是动态的获取国家法定节假日(每年都会更新,可维护性更强).并去除周六周末. 当然,有一种比较low的解决方案就是把当年的法定节假日储存到表中或者 ...

  7. 获取某天到某天相隔的时间段的工作日期(包含周末上班时间)和非工作日(包括调休、国家法定节假日)

    在这 ## **获取某天到某天相隔的时间段的工作日期(包含周末上班时间)和非工作日(包括调休.国家法定节假日)** Date.prototype.format = function() {var s ...

  8. Hive3.0.0自定义UDF函数获取每月结合国家法定节假日工作日数实现

    1.客户需求 根据每月工作日并结合国家法定节假日计算工作量(必须给我实现,我不管你们用什么方法) 2.现状 由hive默认函数不支持该需求,那只好自己动手来写了,在不可能也要创造可能啊,毕竟客户god ...

  9. java节假日算法_「国家法定节假日」java 国家法定节假日和双休日判断工具类 - seo实验室...

    国家法定节假日 package com.newland.dateutil; import java.text.ParseException; import java.text.simpledatefo ...

最新文章

  1. Windows安装MongoDB可视化工具adminMongo
  2. struts2 ibatis Spring系统架构图
  3. 需求:过滤下面这个网页里共723行 校对中里 行数为两位数的 行 并设置sz和rz在Windows和Linux之间发送和接收文件不用搭FTP...
  4. Oracle数据库案例整理-Oracle系统执行时故障-Shared Pool内存不足导致数据库响应缓慢...
  5. 管理学习(2)——职场中最重要的四件事
  6. 【Drools三】打工人学习Drools高级语法
  7. mysql vs连不上_vs2015下配置MySQL,使之能使用c++连接完美运行
  8. spin_lock amp; mutex_lock的差别?
  9. ArrayList、LinkedList原理
  10. Doris SQL执行计划
  11. 推荐几个前端模板下载站
  12. ubuntu Empathy msn验证出错
  13. 零基础SSM入门教程(50)–Spring总结与展望SpringBoot、SpringCloud
  14. NTFS文件系统文件删除对比
  15. 69的人因为穷不谈恋爱,这届年轻人脱单太难了
  16. java学生成绩统计
  17. GRE隧道配置实验(静态路由)
  18. 数据迁移——技术选型
  19. 微软自带dns服务器,微软改进Windows 10加密DNS服务器配置(DoH) 现在设置起来更方便...
  20. 剪辑视频怎么添加背景视频

热门文章

  1. 赛博杯2020WP web
  2. SAP FICO 固定资产批导
  3. 汉堡式折叠html,纯CSS3菜单汉堡包按钮变形动画特效
  4. 色彩空间(RGB, HSV, LAB, YUV)
  5. 99%的游戏建模师不知道的ZBrush的15个建模技巧
  6. linux 1060显卡,Ubuntu 16.04 安装 NVIDIA GeForce GTX 1060 显卡驱动,以及 CUDA 10.1
  7. 【大疆2021校招】【硬件B卷】笔试题
  8. 对Spring IOC的理解
  9. 新MLC颗粒来了!让SSD写入提升2倍 寿命翻10倍
  10. 教父三部曲观后感总结