最简单判断工作日/节假日api(代码片段)

jiangzhongwei_ jiangzhongwei_     2023-02-13     571

关键词:

      由于开发的系统需要根据工作日和节假日来进行逻辑判断,所以这里研究了下方案:

1. 自己维护一份日历表,把每天的日期类型标注清楚

       之前的一家公司就是这样解决的,需要每年去手动更新。如果公司规模比较大,对数据稳定性要求较高,建议选择这种方式。切记不要为了偷懒而因小失大!

2. 在线API实时获取

       嘿嘿,我现在就是选择这种方式。项目比较小型,接口访问量少,能容忍稍微的接口超时。那么毫无疑问就可以选择API获取了!话不多说,上代码:

​
 /**
     * 判断是否为工作日
     * @param date
     * @return
     */
    public static boolean isWorkday(Date date)
        try
            String url = "http://timor.tech/api/holiday/info/" + parseString(date,FMT_YYYY_MM_DD);
            String result = HttpClientUtils.httpGetRequest(url);
            JSONObject obj = JSONObject.parseObject(result);
            Integer code = obj.getInteger("code");
            if (null != code && 0 == code.intValue())
                Integer dayType = obj.getJSONObject("type").getInteger("type");
                return 0 == dayType.intValue();
            
        catch (Exception e)
            LOGGER.error("网络异常:",e);
        
        return true;
    

​

请求示例:http://timor.tech/api/holiday/info/2021-6-18

接口返回:"code":0,"type":"type":0,"name":"周五","week":5,"holiday":null

       下面是引用源网上的使用教程:


  "code": 0,              // 0服务正常。-1服务出错
  "type": 
    "type": enum(0, 1, 2, 3), // 节假日类型,分别表示 工作日、周末、节日、调休。
    "name": "周六",         // 节假日类型中文名,可能值为 周一 至 周日、假期的名字、某某调休。
    "week": enum(1 - 7)    // 一周中的第几天。值为 1 - 7,分别表示 周一 至 周日。
  ,
  "holiday":             //工作日时为null
    "holiday": false,     // true表示是节假日,false表示是调休
    "name": "国庆前调休",  // 节假日的中文名。如果是调休,则是调休的中文名,例如'国庆前调休'
    "wage": 1,            // 薪资倍数,1表示是1倍工资
    "after": false,       // 只在调休下有该字段。true表示放完假后调休,false表示先调休再放假
    "target": '国庆节'     // 只在调休下有该字段。表示调休的节假日
  

       当然这是私人服务器,免费开放给咱们使用的,每人1天可调用1万次,真的是良心制作了!谢谢老哥!这里贴上他的网站地址:http://timor.tech/api/holiday/,大家有兴趣可以去捧捧场。

最简单判断工作日/节假日api(代码片段)

   由于开发的系统需要根据工作日和节假日来进行逻辑判断,所以这里研究了下方案:1.自己维护一份日历表,把每天的日期类型标注清楚    之前的一家公司就是这样解决的,需要每年去手动更新。如果公司... 查看详情

java——获取n个工作日后的日期(这里只除去周末)(代码片段)

我这里是个简单版的,只是去除周末,对于节假日无法自动掌控,需要配置节假日表,因为中国的节假日是每年定一次。可以参考:获取n个工作后的日期,排除节假日和调休我的简单版代码如下: publi... 查看详情

java——获取n个工作日后的日期(这里只除去周末)(代码片段)

我这里是个简单版的,只是去除周末,对于节假日无法自动掌控,需要配置节假日表,因为中国的节假日是每年定一次。可以参考:获取n个工作后的日期,排除节假日和调休我的简单版代码如下: publi... 查看详情

java工作日计算工具类(代码片段)

工作日计算工具类主要功能:传入两个日期,返回这两个日期之间有多少个工作日。思路:先预设值好START_YEAR-END_YEAR年份范围内的节假日、补休保存到map;然后遍历这个年份范围内的每一天,如果在map里找到相应数据,则以map... 查看详情

java判断当前日期是节假日还是工作日

你好,这个功能一般是使用一个专门的数据库表把一年的节假日都存进去来判断的。国家每年都会提前发布一年的节假日,然后我们再导入到数据库。而特殊的做法应该可以接入百度之类的接口。希望能帮到你。参考技术A你好... 查看详情

java——获取n个工作日后的日期(这里只除去周末)(代码片段)

我这里是个简单版的,只是去除周末,对于节假日无法自动掌控,需要配置节假日表,因为中国的节假日是每年定一次。可以参考:获取n个工作后的日期,排除节假日和调休我的简单版代码如下: publi... 查看详情

生成2023年节假日/工作日维表(代码片段)

项目中有一张维表,维护的是历史节假日工作日的信息,估计在很多场合都有类似的需求。到了新年,需要生成新一年的数据,下面看看如何在维表中插入新一年的数据。1.查询节假日根据国务院发布的休假信息&#... 查看详情

java工作日和节假日判断

最近公司有个业务需要判断工作日,但是每年的节假日不一样,且不说周末、法定节假日这些,有些公司还有自己的节假日,这样就很难写出一劳永逸的方法来实现了。其实我们可以借助数据库来实现这个功能... 查看详情

java判断当前日期是节假日还是工作日

参考技术A你好,这个功能一般是使用一个专门的数据库表把一年的节假日都存进去来判断的。国家每年都会提前发布一年的节假日,然后我们再导入到数据库。而特殊的做法应该可以接入百度之类的接口。希望能帮到你。 查看详情

js判断空对象最简单方式(代码片段)

functionisNullObject(obj)returnJSON.stringify(obj)===''console.log(isNullObject(name:123))//falseconsole.log(isNullObject())//true 查看详情

js判断空对象最简单方式(代码片段)

functionisNullObject(obj)returnJSON.stringify(obj)===''console.log(isNullObject(name:123))//falseconsole.log(isNullObject())//true 查看详情

moment.js能判断是不是为节假日吗

...断是否为节假日。使用Moment.js查找日期(不包括假日),计算工作日,但最终日期不能为周末。 参考技术Bmoment.js能判断是否为节假日吗:判断日期是否节假日判断节假日有阳历的日期也有阴历的日期所以要获得两个日期加以判断。 查看详情

检查日期是否为节假日api

http://www.easybots.cn/api/holiday.php?d=20160104返回值:工作日对应结果为 0, 休息日对应结果为 1, 节假日对应的结果为 2;检查一个日期是否为节假日 http://www.easybots.cn/api/holiday.php?d=20130101检查多个日期是否为节假日&... 查看详情

java判断股市是不是休市

通过代码来判断股市是否休市。参考技术A每个工作日上午9点半开盘,下午3点收盘嘛,周末或法定节假日全天休市,java获取个Date判断时间而已,再结合法定节假日表,就解决了。好像证券交易所有开放WebService的,直接调用就可... 查看详情

得到指定的偏移日期,遇到节假日就跳过,重新偏移定位日期(代码片段)

...可根据设置的参数[偏移量]进行控制;但是需要对应真实的节假日,如果是节假日,则不可以去打开那个日期的任务;即遇到节假日需要向前/向后(根据偏移量的实际情况进行判断)推算1天,如此循环直到得到非节假日,返回该日期.可定... 查看详情

sql如何判断打卡记录是不是异常?

...请教下大神:1、首先需要判断当前打卡日期是否在正常工作日内;2、同一时间段重复打卡算一次有效打卡;感谢!!!case when日期字段 in (between 7.30 and 8.00,between 12.00 and 12.30,between 13.30&... 查看详情

python获取两个日期间的工作日(代码片段)

importdatetime#计算两个日期之间的工作日数,非天数.classworkDays():def__init__(self,start_date,end_date,days_off=None):"""days_off:休息日,默认周六日,以0(星期一)开始,到6(星期天)结束,传入tupple没有包含法定节假日,"""self.start_date=start_dateself.end_d 查看详情

golang判断文件是否存在(代码片段)

...方案实现这一功能。现在我们介绍其中两种最常用也是最简单的实现,第一种将是跨平台通用的,而第二种则在POSIX平台上通用。跨平台实现跨平台实现的思路很简单,如果某个文件不存在,那么使用os.Lstat就一定会返回error,只... 查看详情