java判断工作日_java 查询指定月份的工作日(不包括法定节假日)
/**
* 日期工具类 用于获取指定月份的工作日(除去周末和法定节假日)
*/
public class DateUtils {
public static void main(String[] args) {
// 获取工作日集合(排除周末)
List workDays = getWorkDays(2020, 4);
// 获取工作日字符串集合
List dateString = getDateString(workDays);
// 获取法定节假日集合
List holidays = getHolidays();
// 从工作日中除去法定节假日
dateString.removeAll(holidays);
System.out.println(dateString.size());
// 遍历纯工作日集合
for (String date : dateString){
System.out.println(date);
}
}
// 返回工作日集合,只排除周末
public static List getWorkDays(int year, int month){
// 用于储存每月工作日
List dates = new ArrayList();
Calendar cal = Calendar.getInstance();
//设置月份
cal.set(Calendar.YEAR, year);
// 设置月份
cal.set(Calendar.MONTH, month - 1);
// 设置为当月第一天
cal.set(Calendar.DATE, 1);
while(cal.get(Calendar.YEAR) == year && cal.get(Calendar.MONTH) < month){
// 判断当前天为本周的第几天
int day = cal.get(Calendar.DAY_OF_WEEK);
// 如果不为周六或者周天,将日期进行储存
if(!(day == Calendar.SUNDAY || day == Calendar.SATURDAY)){
dates.add((Date)cal.getTime().clone());
}
// 将当前日期增加一天
cal.add(Calendar.DATE, 1);
}
// 返回当前月工作日集合
return dates;
}
/**
*
* @param dateList
* @return 返回日期字符串集合
*/
public static List getDateString(List dateList){
// 储存日期字符串
List dateString = new ArrayList<>();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
for (Date date : dateList){
String date2 = simpleDateFormat.format(date);
dateString.add(date2);
}
return dateString;
}
/**
*
* @return 返回法定节假日集合
*/
public static List getHolidays(){
List holidays = new ArrayList<>();
holidays.add("2019-01-01");
holidays.add("2019-01-14");
holidays.add("2019-02-11");
holidays.add("2019-03-21");
holidays.add("2019-04-29");
holidays.add("2019-04-30");
holidays.add("2019-05-01");
holidays.add("2019-05-02");
holidays.add("2019-05-03");
holidays.add("2019-05-04");
holidays.add("2019-05-05");
holidays.add("2019-05-06");
holidays.add("2019-07-15");
holidays.add("2019-08-11");
holidays.add("2019-08-12");
holidays.add("2019-09-16");
holidays.add("2019-09-23");
holidays.add("2019-10-14");
holidays.add("2019-10-22");
holidays.add("2019-11-03");
holidays.add("2019-11-04");
holidays.add("2019-11-23");
return holidays;
}
}
java判断工作日_java 查询指定月份的工作日(不包括法定节假日)相关推荐
- Oracle查询指定月份有多少天
0.码仙励志 学习必须如蜜蜂一样,采过许多花,这才能酿出蜜来. 1.Oracle查询指定月份有多少天 SELECT TO_CHAR(LAST_DAY(TO_DATE('2020-06','yyyy-M ...
- java判断 图片_java判断是否为图片的步骤和方法
小编今天看到有个小伙伴问java如何判断上传的东西是否是图片,刚好小编有时间就给小伙伴解决一下如何判断的方法. 1.打开Eclipse,在项目工程一栏,也就是左边这一栏的空白处右击鼠标, 选择new- ...
- java 判断当天_java判断一个时间是否是今天的方法
java判断时间是否是今天:public class Test { /** * java 判断一个时间是不是今天的时间范围内 * @param args */ public static void m ...
- java 判断用户名_java判断用户名和密码的方法
java判断用户名和密码的方法 发布时间:2020-04-28 11:18:51 来源:亿速云 阅读:122 作者:小新 今天小编给大家分享的是java判断用户名和密码的方法,相信很多人都不太了解,为 ...
- mysql提取身份证生日并查询指定月份的数据
根据身份证提取生日: SELECT CAST(SUBSTRING(身份证号码,7,8) AS DATE) as 年份, FROM_UNIXTIME(UNIX_TIMESTAMP(CAST(SUBSTR ...
- java判断或_Java判断用户名和密码是否符合要求过程详解
这篇文章主要介绍了Java判断用户名和密码过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 假设在某仓库管理系统的登录界面中需要输入用户名和密 ...
- java判断文件格式_java判断检验各种文件类型,如gz、txt等
java判断检验各种文件类型,通过读取文件头(前4位),可判断gz等格式,代码如下: import java.io.FileInputStream; import java.io.IOExceptio ...
- java判断质数_Java判断素数
Java判断素数 public static void main(String[] args) { Scanner input=new Scanner(System.in); System.out.p ...
- C#实现工作日和休息日(包括法定节假日)的计算
一.开发背景: 最近在公司开发的系统中,需要计算工作日,就是给出一个采购周期(n天),我需要计算出在n个工作日之后的日期.开始准备去调接口(ps:找了半天发现没有太合适的,还有吐槽下国家政府单位都没有 ...
最新文章
- [leetcode] Minimum Path Sum
- 泪目!兰大硕导的《致谢》火了:我从来不曾优秀过,也从来不曾放弃过!
- Issue 140: Tweet
- 最近学习linux-c的编程
- 关于机器学习的一些感想
- 司爱侠计算机英语教程第五版翻译,计算机英语教程 教学课件 作者 司爱侠 张强华 参考译文.doc...
- sql中in与php数组,格式化SQL“IN”子句的PHP数组
- WordPress5.7版本下载及更新内容
- IOS程序中打开自己的程序,测试机器中是否装了自己的程序(openURL:,canOpenURL:)
- 2016-11-15NOIP模拟赛
- matlab单位采样序列程序,matlab产生pn序列
- jquery第三章练习三(制作京东常见问题分类页面)
- pr cc 2018的快捷键整理
- 参考文献类型标识码--中英文对照
- 微信视频号如何申请认证,流程是什么?
- 德鲁克谈《自我管理》——《哈佛商业评论》史上最受欢迎的文章
- 几行代码,复杂Excel 导入导出,真心强大!
- 都说建议新手用3Dmax,那到底学好3Dmax要多久呢?
- 什么是CC攻击?CC攻击的防御措施有哪些?
- 【Visual C++】游戏开发笔记三十二 浅墨DirectX提高班之一 DirectX大局观认知篇