java 如何判断一天是否为工作日?节假日?

目的

判断一天是否为节假日。

在区分不同的工作场景时,这个变量是比较有用的。

基础数据如何获取?

节假日查询

百度搜索节假日,国务院放假发文地址

https://www.gov.cn/zhengce/zhengceku/202310/content_6911528.htm

节假日数据获取

方式一:手动维护日期数据

1.初始化数据库表sql

sql 复制代码
drop database if exists kaoqin;
create database kaoqin;

use kaoqin;
CREATE TABLE `no_work_day` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `day` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

2. 初始化数据

建议这种方式,可以更加灵活。

可以存储每一天的数据,也可以简单些只配置特殊的节假日。

方式2:三方接口

调用api查询(2020年及之前的年份才能用此api)

首先查询百度万年历节接口(其中包含全年节假日数据),得到json数据 (全年节假日信息在json的holiday中,query=2020,其实默认就是202001,其他月份的万年历请求如query=202004)

请求的api:

https://sp0.baidu.com/8aQDcjqpAAV3otqbppnN2DJv/api.php?query=2020&resource_id=6018

除了节假日,还有哪些因素可能影响工作日的判断?

除了节假日,还有几个因素可能影响工作日的判断:

  1. 公司政策:不同的公司可能有不同的工作日安排,例如某些公司可能有弹性工作制度,允许员工在某些日子远程工作或选择休息日。

  2. 行业特性:某些行业可能因为其特殊性而有不同的工作日安排。例如,零售和服务业在周末和节假日可能更忙碌,因此这些日子可能被视为工作日。

  3. 地区差异:不同地区的工作习惯和文化可能影响工作日的安排。例如,在某些地区,可能存在半天工作日或特定的宗教节日。

  4. 季节性变化:在某些行业,如农业或旅游业,工作日可能会根据季节性需求进行调整。

  5. 特殊事件:如自然灾害、突发公共卫生事件(如疫情)或其他紧急情况可能影响正常的工作日安排。

  6. 政府政策:政府可能会因为特殊原因调整工作日,例如为了缓解交通压力而实行的错峰上下班政策。

  7. 员工个人情况:员工的个人情况,如病假、年假、产假等,也可能影响特定日期是否为工作日。

  8. 国际日期变更:对于跨国公司,不同国家的节假日和工作日安排可能不同,需要综合考虑。

  9. 时区差异:对于全球分布的团队,时区差异可能意味着某些地区的工作日与其他地区不同。

  10. 宗教节日:不同宗教有不同的节日,这些节日可能会影响某些员工的工作日。

在编写程序判断工作日时,需要根据具体情况考虑这些因素,并相应地调整逻辑以适应不同的需求。

相关推荐
我是小白呀2 小时前
编排还是事件协作?用 AcmeFlow 讲清企业 Workflow 的控制权
java·开发语言
深入云栈2 小时前
Netty 4.2.x 源码深度解析 (十四):KQueue 传输 —— macOS 高性能 IO 的 Netty 实现
java·后端
信誓旦旦的程序猿3 小时前
【Python 量化取数指南 #13】Python 把行情落库:sqlite 一键存,回测随用随取
java·python·股票数据api·股票数据·股票数据api接口·股票api数据接口·股票量化数据api
她的男孩3 小时前
头像换了三次还是旧图:秒传 + 预签名 URL + 私有文件权限,四层缓存叠出一个 Bug
java·后端·架构
深入云栈3 小时前
Netty 4.2.x 源码深度解析 (十五):io_uring 传输 —— RingBuffer 与零拷贝 IO
java·后端
MacroZheng3 小时前
装上这款全能增强插件,DeepSeek Harness瞬间高大上了!
java·人工智能·后端
long、涯3 小时前
win10安装Maven3.9(图文版)
java·maven
霸道流氓气质3 小时前
LangGraph式图编排引擎Java实现:状态机模型、Checkpoint恢复与生产级落地实战
java·开发语言·数据库
AI深栈3 小时前
第 19 章 · AI 工具循环与条件路由:管住 recursionLimit
java·人工智能
后端LV3 小时前
「一切皆插件」不是口号:手写一个敢上生产的治理管道过滤器
java