Java获取某月节假日+周末
感觉大佬提供的免费节假日接口
http://timor.tech/api/holiday
该工具类能获取到 严格按照国家要求的双休和法定节假日并且筛掉节假日的补班。
import com.alibaba.fastjson.JSONObject;
import com.squareup.okhttp.OkHttpClient;
import com.squareup.okhttp.Request;
import com.squareup.okhttp.Response;
import org.springframework.util.CollectionUtils;import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.*;//获取周末和节假日public static Set<String> JJR(int year,int month) {//获取所有的周末Set<String> monthWekDay = getMonthWekDay(year, month);//http://timor.tech/api/holiday api文档地址Map jjr = getJjr(year, month+1);Integer code = (Integer) jjr.get("code");if(code != 0){return monthWekDay;}Map<String,Map<String,Object>> holiday = (Map<String, Map<String,Object>>) jjr.get("holiday");Set<String> strings = holiday.keySet();for (String str: strings) {Map<String, Object> stringObjectMap = holiday.get(str);Integer wage = (Integer) stringObjectMap.get("wage");String date = (String) stringObjectMap.get("date");//筛选掉补班if(wage .equals( 1)){monthWekDay.remove(date);}else{monthWekDay.add(date);}}return monthWekDay;}//获取节假日不含周末private static Map getJjr(int year, int month) {String url = "http://timor.tech/api/holiday/year/"+year+"-"+month;OkHttpClient client = new OkHttpClient();Response response;//解密数据String rsa = null;Request request = new Request.Builder().url(url).get().addHeader("Content-Type", "application/x-www-form-urlencoded").build();try {response = client.newCall(request).execute();rsa = response.body().string();} catch (IOException e) {e.printStackTrace();}return JSONObject.parseObject(rsa, Map.class);}//获取周末 月从0开始public static Set<String> getMonthWekDay(int year,int mouth){Set<String> dateList = new HashSet<>();SimpleDateFormat simdf = new SimpleDateFormat("yyyy-MM-dd");Calendar calendar = new GregorianCalendar(year, mouth , 1);Calendar endCalendar = new GregorianCalendar(year, mouth , 1);endCalendar.add(Calendar.MONTH,1);while (true) {int weekday=calendar.get(Calendar.DAY_OF_WEEK);if(weekday == 1 || weekday== 7){dateList.add(simdf.format(calendar.getTime()));}calendar.add(Calendar.DATE,1);if (calendar.getTimeInMillis() >= endCalendar.getTimeInMillis()){break;}}return dateList;}
maven
<!-- okhttp --><dependency><groupId>com.squareup.okhttp</groupId><artifactId>okhttp</artifactId><version>2.5.0</version></dependency><!--fastjson --><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.47</version></dependency>
Java获取某月节假日+周末相关推荐
- java获取国家法定节假日和周末
java获取国家法定节假日和周末 package com.lxh.config.utils;import com.alibaba.fastjson.JSONObject; import okhttp3 ...
- java获取国家法定节假日(不依赖API)
java获取国家法定节假日, 由此可获取每月第一个工作日和最后一个工作日 (不依赖API,主要是因为API接口不可靠或计费,此工具依赖国务院发布的节假日基础信息进行解析) 本工具仅供参考学习.各类数据 ...
- JAVA获取前一个月的第一天和最后一天
需求:需要实现获取前一个月的第一天和最后一天 实现如下: package com.date;import java.text.SimpleDateFormat; import java.util.Ca ...
- 【Java获取国家法定节假日三种工具类其三】
使用GitHub开源Api调用获取国家法定节假日 public class HolidayUtils {/*** 请求第三方接口的方法** @param url 请求的url* @return*/pu ...
- Java 获取一个月的总天数
//获取一个月天数 public static int getDaysOfMonth(Date date) {Calendar calendar = Calendar.getInstance();ca ...
- java 获取指定月的最后一天
今天出现一个很奇怪的问题,使用calendar 来处理日期时,获取指定月的日期时,出现了一个异常,当这个月有31天时就是正确的,但如果不是31天结果就不对. /*** 获取某月的最后一天 如20171 ...
- JAVA获取一个月的开始与结束时间以及两个日期相差几个月
一.一个月的开始与结束时间代码如下 /*** 获取指定月的开始日期* @param currentDate* @return*/public static Date getStartDate(Stri ...
- 【现成工具】java获取国家法定节假日包含指定月份节假日和周末
首先感谢大佬提供的免费API接口调用,http://timor.tech/api/holiday .该API工具类可以获取到国家法定节假日,此节假日为严格按照国家要求的双休和法定节假日并且包含节假日的 ...
- 【Java获取国家法定节假日三种工具类其一】
最全的时间工具类 开箱即用 public abstract class MyDateUtil {/*** 时区误差*/private static long timeZoneError = 0;/** ...
最新文章
- 讨论:有多少项目是因为程序的原因而失败的
- CMB标量功率谱第一个谱指数跑动项n(1)跑动带来的影响
- python vs java 搞笑视频_Python VS Java,谁能笑到最后?
- Linux蜂鸣器实验(使用上一节子系统思想,摈弃了自己配置寄存器的繁琐操作)
- 【英语学习】【WOTD】magniloquent 释义/词源/示例
- js 正则表达式总结
- 计算机仿真软件的论文,【计算机仿真论文】计算机仿真软件模拟物流系统研究(共5366字)...
- win10系统如何查找字体库位置+在matplotlib散点图中的应用+散点图中显示不了中文
- android x5webview截长图
- 多应用集中落地,四川区块链产业爆发增长
- android接收红外传感器发送的脉冲信号,Arduino红外传感器-IR Receiver Module红外接收模块...
- python数据清洗
- 总体分布概况符合无界约翰逊分布(johnsonsu)的情况
- R软件做线性回归分析
- 阿里云服务器选购指南(图文教程详解)
- string find()函数、string::npos的含义、erase()函数
- 从http协议看百度360大战
- (二十五)套利定价理论(APT)
- 九种常用的UML图总结
- H5视频之直播流服务搭建(一)