介绍

基于HuTool工具类时间工具类,获取今年的所有法定节假日

获取今年所有的周末

public static Map<DateTime,String> getAllWeekend(){return new HashMap<DateTime,String>(){{for (DateTime dateTime : getAllDayOfYear()) {//今年的所有日期if (DateUtil.isWeekend(dateTime)){put(dateTime, dateTime.dayOfWeekEnum().toChinese());}}}};
}

获取今年所有的法定假日

默认今年:https://timor.tech/api/holiday/year/
指定年:https://timor.tech/api/holiday/year/2023
指定年和月:https://timor.tech/api/holiday/year/2023-10

private static final String HOLIDAY_URL = "https://timor.tech/api/holiday/year/";
public static Map<DateTime,String> getAllHoliday(Integer year){String url = year != null ? HOLIDAY_URL+year : HOLIDAY_URL;String response = HttpUtil.get(url);Collection<Object> holidays = JSONUtil.parseObj(response).getJSONObject("holiday").values();return new HashMap<DateTime,String>(32){{for (Object holiday : holidays) {JSONObject dateJson = JSONUtil.parseObj(holiday);String name = dateJson.getStr("name");if (!name.contains("补")){//排除补班put(DateTime.of(dateJson.getDate("date")),name);}}}};
}

整体代码

public class HolidayUtil {private static final String HOLIDAY_URL = "https://timor.tech/api/holiday/year/";/*** 获取今年的所有法定节假日包括周末*/public static Map<DateTime,String> getAllDayOff(){//周末Map<DateTime, String> allWeekend = getAllWeekend();//法定假日allWeekend.putAll(getAllHoliday(null));//排序并返回结果return allWeekend.entrySet().stream().sorted(Map.Entry.comparingByKey()).collect(Collectors.toMap(Map.Entry::getKey,Map.Entry::getValue,(oldValue, newValue) -> oldValue,LinkedHashMap::new));}/*** 获取今年的所有周末*/public static Map<DateTime,String> getAllWeekend(){return new HashMap<DateTime,String>(){{for (DateTime dateTime : getAllDayOfYear()) {//今年的所有日期if (DateUtil.isWeekend(dateTime)){put(dateTime, dateTime.dayOfWeekEnum().toChinese());}}}};}/*** 获取到今年的所有节日* key date 日期* value info 描述*{*   "holiday":true,*   "name":"元旦",*   "wage":3,*   "date":"2023-01-01",*   "rest":1*}*/public static Map<DateTime,String> getAllHoliday(Integer year){String url = year != null ? HOLIDAY_URL+year : HOLIDAY_URL;String response = HttpUtil.get(url);Collection<Object> holidays = JSONUtil.parseObj(response).getJSONObject("holiday").values();return new HashMap<DateTime,String>(32){{for (Object holiday : holidays) {JSONObject dateJson = JSONUtil.parseObj(holiday);String name = dateJson.getStr("name");if (!name.contains("补")){//排除补班put(DateTime.of(dateJson.getDate("date")),name);}}}};}/*** 获取今年的所有天*/public static List<DateTime> getAllDayOfYear(){DateTime now = DateTime.now();DateTime begin = DateUtil.beginOfYear(now);//今年的开始DateTime end = DateUtil.endOfYear(now);//今年的结束return DateUtil.rangeToList(begin,end, DateField.DAY_OF_YEAR);//今年的所有日期}
}

获取今年的所有法定节假日相关推荐

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

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

  2. 获取指定年份的法定节假日

    节假日不应该多点吗??????? public static List<Map<String,Object>> getStatutoryCalendar(Integer yea ...

  3. 超实用工具:获取法定节假日、休息日、周末天数

    我们国家有法定节假日,有因为法定节假日需要额外补班的周末,还有平常普通的周末,如何创建一个工具类,能很方便的知道这些信息呢?如下的代码能实现这些功能: 给定日期,判断是否是法定节假日. 给定日期,判断 ...

  4. Python3 获取法定节假日

    站在巨人的肩膀上. 想要获取法定节假日时,找到了这位大佬的博客. https://blog.csdn.net/joson1234567890/article/details/106214810 但是问 ...

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

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

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

    java获取国家法定节假日和周末 package com.lxh.config.utils;import com.alibaba.fastjson.JSONObject; import okhttp3 ...

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

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

  8. 分享一个大佬的网站,获取法定节假日

    可以获取法定节假日 免费节假日 API - 提莫的神秘商店免费节假日api, 免费好用,简洁好看的文档.可能是最良心的免费节假日API接口了.具有TTS接口,可直接返回人类可阅读的中文结果, 持续更新 ...

  9. Python获取法定节假日

    Python获取法定节假日 import requests from bs4 import BeautifulSoup as BS# 获取指定月份节假日 def get_holidays(year, ...

最新文章

  1. php删除所以文件,php如何删除所有文件
  2. 离开页面前显示确认提示对话框(兼容IE,firefox) = how to Catch Win...
  3. python ftp文件传输客户端
  4. android 编写系统应用,Android应用快速开发系统设计与实现
  5. 动态规划---最短编辑距离
  6. mysql peferences_MySQL初次实践
  7. 对网络数据包进行嗅探
  8. java线程安全例子_Java总结篇系列:Java多线程(三)
  9. Java基础---接口的使用
  10. shell自定义数组元素分隔符
  11. spring cloud系列eureka客服端搭建
  12. 【游戏开发框架】自制Unity通用游戏框架UnityXFramework,详细教程(Unity3D技能树 | tolua | 框架 | 热更新)
  13. windows多线程同步机制---原子锁
  14. 直角坐标系(Cartesian或Rectangular coordinate system)
  15. Php公众号自定义菜单设置,教你设置微信公众号自定义菜单!,来看看吧
  16. 在root目录下npm install报错Error: EACCES: permission denied, mkdir ‘/root/ttt/web/node_modul
  17. 什么是VR全景及优势
  18. 使用spotify的docker-maven-plugin插件将SpringBoot项目打包为Docker镜像
  19. dingding for Ubuntu: Ubuntu中钉钉安装包资源及安装
  20. win10 Snipaste 截图软件

热门文章

  1. PHP对接阿里大鱼实现短信的发送
  2. C++——system“pause”
  3. 【深度学习】线上租用设备平台体验以及踩过的坑(非广告)
  4. c++与oc混编之c++中调用oc方法
  5. php MySQL简易模板_php 实现简易模板引擎
  6. 读过《坏孩子的故事》后
  7. Python毫秒准换为秒
  8. java谓词_Java 8谓词链
  9. oracle 11升级补丁,ORACLE 11g 升级补丁(Patch)
  10. Remix IDE已支持Sui Move在线开发