最简单判断工作日/节假日API

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

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/,大家有兴趣可以去捧捧场。

  • 5
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在.NET Core 中,要判断当天是否是节假日或非工作日,可以通过调用第三方的日期查询接口或使用已有的公共假期数据源进行判断。 一种常用的方法是通过调用第三方的日期查询接口。这些接口通常提供了查询某一天是否是节假日或非工作日的功能。你可以发送一个HTTP请求到该接口,并传递当前日期作为参数。接口会返回一个包含该日期是否是节假日或非工作日的响应。你可以在代码中解析该响应,并根据状态来判断当天是否是节假日或非工作日。 另一种方法是使用已有的公共假期数据源。这些数据源通常提供了节假日和非工作日的日期列表。你可以将这些列表导入到.NET Core应用程序中,并在代码中进行匹配。通过比对当前日期与列表中的日期,你可以判断当天是否是节假日或非工作日。 无论使用哪种方法,你都需要先获取到当天的日期,可以使用.NET Core中的DateTime.Now属性来获取当前日期。然后,结合第三方查询接口或公共假期数据源的查询功能或数据匹配,来判断此日期是否是节假日或非工作日。 需要注意的是,不同的地区和国家的节假日和非工作日规定可能会有所不同,因此你需要根据具体的需求选择相应的数据源或查询接口,并进行相应的判断处理。同时,这些数据源或接口可能需要API访问权限或付费,因此在集成和使用时需要注意相关事宜。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值