1.某些业务场景需要获取全年哪些天是节假日还是非节假日 比如说出勤。

2.我介绍的这种方式是通过Api调用的方式,通过当前日期来查询是节假日还是非节假日

http://api.goseek.cn/Tools/holiday?date=" + 日期      data为0则是节假日,data为0 则是休息日 1为节假日

3.代码

package com.bos.test;import com.alibaba.fastjson.JSONObject;
import com.bos.common.SplitTime;
import com.bos.util.SendRequest;import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;public class Test2 {public static void main(String[] args) {try {getAllHolidayDate();} catch (Exception e) {}}/*** 1.获取本年的第一天 获取本年最后一天* 2.遍历第一天到最后一天的数据,通过调用Api接口的方式获取当前是否为工作日** @throws Exception*/public static void getAllHolidayDate() throws Exception {SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");//获取本年第一天Date startDate = SplitTime.getCurrYearFirst();//获取本年最后一天Date endDate = SplitTime.getCurrYearLast();//遍历全年日期List<Date> lists = SplitTime.dateSplit(startDate, endDate);if (!lists.isEmpty()) {for (Date date : lists) {String currentDate = sdf.format(date);System.out.println("当前日期---" + currentDate);String url = "http://api.goseek.cn/Tools/holiday?date=" + currentDate;JSONObject dateTypes = SendRequest.sendGet2(url);String data = dateTypes.getString("data");if (data.equals("0")) {System.out.println("工作日");} else {System.out.println("非工作日");}//获取当前日期属于第几周int weekType = SplitTime.getCurrentDateBelongToWhatWeek(currentDate);System.out.println("当前日期属于第几周---" + weekType);}}}
}

4.用来操作时间的类

package com.bos.common;import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;/*** 功能描述: 用来操作时间的类* @Author: tanghh18* @Date: 2019/9/8 10:44*/
public class SplitTime {/*** 用来计算俩个日期之前的天数* @param startDate* @param endDate* @return* @throws Exception*/public static List<Date> dateSplit(Date startDate, Date endDate)throws Exception {if (!startDate.before(endDate))throw new Exception("开始时间应该在结束时间之后");Long spi = endDate.getTime() - startDate.getTime();// 相隔天数Long step = spi / (24 * 60 * 60 * 1000);List<Date> dateList = new ArrayList<Date>();dateList.add(endDate);for (int i = 1; i <= step; i++) {// 比上一天减一dateList.add(new Date(dateList.get(i - 1).getTime()- (24 * 60 * 60 * 1000)));}return dateList;}/*** 获取当年的第一天* @return*/public static Date getCurrYearFirst(){Calendar currCal=Calendar.getInstance();int currentYear = currCal.get(Calendar.YEAR);return getYearFirst(currentYear);}/*** 获取某年第一天日期* @param year 年份* @return Date*/public static Date getYearFirst(int year){Calendar calendar = Calendar.getInstance();calendar.clear();calendar.set(Calendar.YEAR, year);Date currYearFirst = calendar.getTime();return currYearFirst;}/*** 获取当年的最后一天* @return*/public static Date getCurrYearLast(){Calendar currCal=Calendar.getInstance();int currentYear = currCal.get(Calendar.YEAR);return getYearLast(currentYear);}/*** 获取某年最后一天日期* @param year 年份* @return Date*/public static Date getYearLast(int year){Calendar calendar = Calendar.getInstance();calendar.clear();calendar.set(Calendar.YEAR, year);calendar.roll(Calendar.DAY_OF_YEAR, -1);Date currYearLast = calendar.getTime();return currYearLast;}/*** 获取当前日期属于第几周*/public static  int getCurrentDateBelongToWhatWeek(String currentDate){int weekOfYear;try{SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");Date date = format.parse(currentDate);Calendar calendar = Calendar.getInstance();calendar.setFirstDayOfWeek(Calendar.MONDAY);calendar.setTime(date);weekOfYear = calendar.get(Calendar.WEEK_OF_YEAR);}catch (Exception e){return 0;}return weekOfYear;}
}

5. SendGet2

  public static JSONObject sendGet2(String url) {JSONObject jsonObject = null;StringBuffer sb = new StringBuffer();BufferedReader in = null;try {String urlName = url;URL realUrl = new URL(urlName);// 打开和URL之间的连接URLConnection conn = realUrl.openConnection();// 设置通用的请求属性conn.setRequestProperty("accept", "*/*");conn.setRequestProperty("connection", "Keep-Alive");conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)");conn.setConnectTimeout(10000);// 建立实际的连接conn.connect();// 定义BufferedReader输入流来读取URL的响应in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));String line;while ((line = in.readLine()) != null) {sb.append(line);}jsonObject = JSON.parseObject(sb.toString());} catch (Exception e) {System.out.println("发送GET请求出现异常!" + e);// 使用finally块来关闭输入流} finally {try {if (in != null) {in.close();}} catch (IOException ex) {System.out.println("关闭流异常");}}return jsonObject;}

如何获取全年节假日信息以及计算当前日期属于第几周相关推荐

  1. 日期转换工具+获取当年节假日信息 很简单

    //封装成json 自带的JSON.stringify()会崩溃不知道为什么 function Arr2Json(arr) {var str = "{";var i = 1;for ...

  2. 获取中国节假日信息api

    1.接口地址:http://api.goseek.cn/Tools/holiday?date=数字日期 2.返回数据:正常工作日对应结果为 0, 法定节假日对应结果为 1, 节假日调休补班对应的结果为 ...

  3. java使用免费日期API获取当年节假日

    接到个需求需要区分工作日和非工作日,因此在网上找了个免费的接口: (https://tool.bitefu.net/jiari/)用来测试获取相应日期信息. 接口开发人员不易,请尽量付费使用!!! 这 ...

  4. 节假日api接口之获取指定日期的节假日信息

    获取指定日期的节假日信息 1.接口地址:http://api.goseek.cn/Tools/holiday?date=数字日期 2.返回数据:正常工作日对应结果为 0, 法定节假日对应结果为 1, ...

  5. java获取工作日 日历接口_节假日api接口之获取指定日期的节假日信息

    获取指定日期的节假日信息 1.接口地址:http://api.goseek.cn/Tools/holiday?date=数字日期 2.返回数据: 3.节假日数据说明:本接口包含2017年起的中国法定节 ...

  6. Python怎么获取节假日信息?

    "holidays" 是一个 Python 第三方库,它可以用来解析和处理节假日信息. 该库提供了一系列函数,可以用来检查某一天是否是节假日.获取某一年中所有节假日的列表等.它支持 ...

  7. 获取节假日信息(来源国务院)

    获取节假日信息(来源国务院) # -*- coding:utf-8 -*- # @Author: Aiden # @Date: 2021/10/27 09:54import datetime, re, ...

  8. java 获取当前第几周_java 计算当前日期是今年的第几周 和 该周的开始日期及结束日期...

    //获取一个Calendar对象 Calendar calendar = Calendar.getInstance(); //设置星期一为一周开始的第一天 calendar.setFirstDayOf ...

  9. java获取法定节假日_java 获取n个工作日后的日期(包含法定节假日、双休日、节后补班)...

    1.说明: 获取n个工作日后的日期(包含法定节假日.双休日.节后补班),需要在数据库手动入库当年的法定节假日及节假日调休补班.(也可写在配置文件中读取) 2.工具类代码 import java.tex ...

最新文章

  1. PDF编辑工具——PDF Desktop Converter 4 Professional
  2. 转载 - 背景透明,文字不透明【学习】
  3. eclipse中文版界面设置黑色_硬核干货总结IDEA开发的26个常用设置
  4. 一些试题:C++面试题.万能Key
  5. MySQL Replace()函数
  6. 苹果将允许iPhone直接使用NFC接受信用卡付款
  7. c语言数码管显示1234,各位大神,如何用C语言实现在数码管上实现1234同时亮
  8. 黑加仑妞 使用vue+flask做全栈开发的全过程(实现前后端分离)
  9. linux yum imagemagick,CentOS7安装 ImageMagick
  10. c语言中的钩子函数,生命周期(vue的钩子函数)
  11. 【数据库原理实验(openGauss)】 安全性控制
  12. STK MATLAB联合仿真(一)STK与MATLAB的连接(COM与Connector)
  13. CATIA模型导入3dsMax形成三层关系的问题
  14. 分布式机器学习平台比较
  15. 爬取12306验证码图片
  16. [除一波并查集和贪心的草]
  17. 万字长文看懂商业智能(BI)|推荐收藏
  18. mysql myisam 主键关联_MySQL中myisam和innodb的主键索引有什么区别?
  19. “我36岁了,还得对28岁的领导赔笑脸”:中年人的职场,心酸自知
  20. 关机提示 ”task host window任务宿主正在执行关闭任务并且正在停止已运行的任务“我是这样解决的

热门文章

  1. android apk 永久root,将android应用转成系统应用后,如何能使其直接获得ROOT权限
  2. 常用接口介绍05——螺钉式PCB接线端子
  3. PAT 1040有几个PAT
  4. opengl加载和绘制STL模型+旋转 平移 缩放 光照
  5. 100天精通Python(基础篇)——第5天:基础语句
  6. 电子地图应用能否保障清明扫墓客流的有序安全?
  7. 雷军做程序员时写的博客,很强大!
  8. python编程语言转换_Python语言 编码转换与中文处理
  9. 视频预览失败 最新解决方案
  10. 快播CEO王欣:流量跌到零也要转型