首先要想知道当前日期是什么日子的话得知道本年所有节日、调休补班的具体日期,那么问题来了要抱着日历挨个数吗?肯定不需要啊,在每年的10月或者11月国务院会发布第二年的节假日和调休补班的日期,只需要国务院的官网搜索“20xx年节假日安排”就行;

有了日期就要用代码实现了

实现该功能的基本原理:

将节假日调休的日期和补班的日期写入配置文件中,再分别用两个集合将节假日调休日期和补班的日期存储起来(不用集合直接存储是为了代码的解耦);获取当前日期后判断当前日期在集合中是否存在,如果节假日调休集合中存在当前日期返回0、如何补班集合中存在当前日期返回1。

那么如何判断当前是工作日还是双休呢?

java中有日期时间对象类Calendar

这里详细介绍了Calendar:Java 中Calendar类的简介说明_qq_25073223的博客-CSDN博客

它可以判断当前是星期几并返回返回一个正数,需要注意的是

1——星期日、2——星期一、3——星期二、4——星期三、5——星期四、6——星期五、7——星期六

返回值不是当前星期一就返回1。

这样可以通过Calendar得到返回值判断当前是工作日还是双休日了,当是工作日是返回2、是双休日的时候返回3。

通过返回值就可以获取当前的日期是什么日子了,

当是这样写需要每年都要更新一遍配置文件中的日期,所以这些也可以写成一个动人的但是比较麻烦,所以我们可以直接使用网上一个开源的接口http://tool.bitefu.net/jiari/

在网上可以查到很多好用的工具类如:

 private static String request(String httpArg) {String httpUrl = "http://tool.bitefu.net/jiari/";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);}reader.close();result = sbf.toString();} catch (Exception e) {e.printStackTrace();}return result;}public static int date(String httpArg) {// 处理节假日String jsonResult = request(httpArg);// 0 上班 1周末 2节假日if ("0".equals(jsonResult)) {return 0;}if ("1".equals(jsonResult)) {return 1;}if ("2".equals(jsonResult)) {return 2;}return 0;}

该接口中返回的是 工作日对应结果为 0, 休息日对应结果为 1, 节假日对应的结果为 2;

直接调用工具类.date(日期字符串)通过返回值就可以完善业务逻辑了。

判断当前的日期是否是节假日、调休、补班、工作日、双休日相关推荐

  1. java 获取日期是否是工作日(包括正常工作日和节假日调休补班)

    本博客提供两个方法,集成一个工具类 1.传入 yyyyMMdd 格式的 String 类型时间 返回今天是否是工作日,请求http://api.goseek.cn/ 网站 获取 getIsWorkin ...

  2. 调用免费API查询全年工作日、周末、法定节假日、节假日调休补班数据

    调用免费API查询全年工作日.周末.法定节假日.节假日调休补班数据 前言 日常开发中,难免会用到判断今天是工作日.周末.法定节假日.节假日调休补班做一些业务处理,例如:仅在上班时间给用户推送消息.本文 ...

  3. 用java写一个算工作日期的功能(考虑到节假日以及补班的情况)

    最近公司需要用java写一个算工作日的功能,简单说说我的实现过程跟思路,以供各位参考,大牛勿喷. 基本思路:在数据库先创建一个表,在表中初始化一年中的假期.需要补班等数据(因为每一年放假.补办安排都不 ...

  4. mac日历显示国家节假日及补班日期

    mac日历显示国家节假日及补班日期 先上效果图 订阅链接 订阅方法 先上效果图 系统日历页面简洁 而且目前支持节假日.农历显示 只是少了放假与补班的标识 为了区分节假日与补班的颜色 整了两个ics文件 ...

  5. 2023节假日及补班日期

    法定节假日:- 2023-01-01- 2023-01-02- 2023-01-21- 2023-01-22- 2023-01-23- 2023-01-24- 2023-01-25- 2023-01- ...

  6. 加班费计算(节假日、补班)

    前言 给定开始时间 结束时间 以及指定时间 计算总加班费 节假日计算在内 一站式解决,复制粘贴10分钟做完 准备 首先要明确节假日概念,我们需要一个API来告诉我们那天是节假日,每年12月国家节日办会 ...

  7. java节假日 调休的代码,java 获取n个工作日后的日期(包含法定节假日、双休日、节后补班)...

    1.说明: 获取n个工作日后的日期(包含法定节假日.双休日.节后补班),需要在数据库手动入库当年的法定节假日及节假日调休补班.(也可写在配置文件中读取). 2.工具类代码 /** * @author: ...

  8. java获取法定节假日_java 获取n个工作日后的日期(包含法定节假日、双休日、节后补班)...

    1.说明: 获取n个工作日后的日期(包含法定节假日.双休日.节后补班),需要在数据库手动入库当年的法定节假日及节假日调休补班.(也可写在配置文件中读取) 2.工具类代码 import java.tex ...

  9. java 法定节假日_java 获取n个工做往后的日期(包含法定节假日、双休日、节后补班)...

    1.说明:java 获取n个工做往后的日期(包含法定节假日.双休日.节后补班),须要在数据库手动入库当年的法定节假日及节假日调休补班.(也可写在配置文件中读取)sql 2.工具类代码数据库 impor ...

最新文章

  1. 集生态之力跨城市数字化之难题,英特尔交上了一份完美答卷
  2. SET ROWCOUNT
  3. 使用免费虚拟服务器建站并实现域名解析
  4. linux如何查看硬件驱动,linux查看硬件信息及驱动设备相关整理
  5. Enterprise Library学习所得(一):总体概述
  6. USACO-Section2.2 Party Lamps
  7. mysql 时间段内的周末_淘宝用户行为数据分析(MySQL)
  8. c语言字符型211,C语言简单的字符驱动程序介绍
  9. 3月22 坐标系转换,旋转矩阵,仿射变换,例子,相机与世界,欧拉角与轴角公式,一个坐标系下面的轨迹
  10. C++ Code_StatusBar
  11. 快逸报表数据库密码加密解决方案
  12. linux命令入门之必备宝典
  13. android safe mode
  14. 高项_第一章信息化和信息系统
  15. 计算机教室布置图cad,CAD制作平面图教程制作教室
  16. SegmentFault 社区访谈 | Linxz:只会写 CSS 不会写 JS 的“伪”前端
  17. Google地图查地址、经纬度
  18. oracle 命令 执行job_Oracle中job的使用详解
  19. 在Linux如何搭建Oracle11g Data Guard
  20. rust fragment specifier

热门文章

  1. for循环输出(倒)金字塔,(空心)菱形,(空心)沙漏
  2. android 重叠颜色,记录状态栏与布局重合,状态栏颜色问题
  3. 形态学图像处理之凸壳
  4. Windows 安装 cygwin 详细步骤
  5. docsify安装(线上文档)
  6. 如何查看邮件的html格式,以HTML格式查看邮件?
  7. LJM-II漏电脉冲继电器
  8. Java方法中的要点
  9. 什么是原型?看完这篇说明就懂了
  10. python html转pdf出现乱码_HTML转PDF神器:WeasyPrint