mysql判断当前日期是否为节假日_java 判断日期是否是节假日
1.新建一个excel命名为“节假日.xls”存放节假日,模板格式如下
2.判断是否是节假日的类 工作日返回true ,休息日返回false。
需要引用poi-bin-3.9包,包放在博客文件中
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFDateUtil;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
public class Festival {
private final String FILE_NAME = "节假日.xls";
private List festival = new ArrayList();// 节假日
private List workDay = new ArrayList();// 工作日
public Festival() {
File excel = this.getExcel();
try {
FileInputStream fin = new FileInputStream(excel);
HSSFWorkbook hssfworkbook = new HSSFWorkbook(fin);
HSSFSheet sheet = hssfworkbook.getSheetAt(0);
int last = sheet.getLastRowNum();
int index = 1;
Date dt = null;
while (index <= last) {
HSSFRow row = sheet.getRow(index);
/* 读取法定节假日 */
HSSFCell cell = row.getCell((short) 0);
if (cell != null) {
if (HSSFDateUtil.isCellDateFormatted(cell)) {
dt = HSSFDateUtil.getJavaDate(cell
.getNumericCellValue());
if (dt != null && dt.getTime() > 0) {
this.festival.add(dt);
}
}
}
/* 读取特殊工作日 */
cell = row.getCell((short) 1);
if (cell != null) {
if (HSSFDateUtil.isCellDateFormatted(cell)) {
dt = HSSFDateUtil.getJavaDate(cell
.getNumericCellValue());
if (dt != null && dt.getTime() > 0) {
// System.out.println(this.getDate(dt));
this.workDay.add(dt);
}
}
}
index++;
}
fin.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public File getExcel() {
File excel = null;
try {
URL url = Festival.class.getResource("/");
url = new URL(url, "../" + FILE_NAME);
excel = new File(url.getPath());
return excel;
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return excel;
}
/**
* 从EXCEL文件中读取节假日
*
* @return
*/
public List getFestival() {
return this.festival;
}
public List getSpecialWorkDay() {
return this.workDay;
}
/**
* 判断一个日期是否日节假日 法定节假日只判断月份和天,不判断年
*
* @param date
* @return
*/
public boolean isFestival(Date date) {
boolean festival = false;
Calendar fcal = Calendar.getInstance();
Calendar dcal = Calendar.getInstance();
dcal.setTime(date);
List list = this.getFestival();
for (Date dt : list) {
fcal.setTime(dt);
// 法定节假日判断
if (fcal.get(Calendar.MONTH) == dcal.get(Calendar.MONTH)
&& fcal.get(Calendar.DATE) == dcal.get(Calendar.DATE)) {
festival = true;
}
}
return festival;
}
/**
* 周六周日判断
*
* @param date
* @return
*/
public boolean isWeekend(Date date) {
boolean weekend = false;
Calendar cal = Calendar.getInstance();
cal.setTime(date);
if (cal.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY
|| cal.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY) {
weekend = true;
}
return weekend;
}
/**
* 是否是工作日 法定节假日和周末为非工作日
*
* @param date
* @return
*/
public boolean isWorkDay(Date date) {
boolean workday = true;
if (this.isFestival(date) || this.isWeekend(date)) {
workday = false;
}
/* 特殊工作日判断 */
Calendar cal1 = Calendar.getInstance();
cal1.setTime(date);
Calendar cal2 = Calendar.getInstance();
for (Date dt : this.workDay) {
cal2.setTime(dt);
if (cal1.get(Calendar.YEAR) == cal2.get(Calendar.YEAR)
&& cal1.get(Calendar.MONTH) == cal2.get(Calendar.MONTH)
&& cal1.get(Calendar.DATE) == cal2.get(Calendar.DATE)) { // 年月日相等为特殊工作日
workday = true;
}
}
return workday;
}
public Date getDate(String str) {
Date dt = null;
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
try {
dt = df.parse(str);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return dt;
}
public String getDate(Date date) {
String dt = null;
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
dt = df.format(date);
return dt;
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Date date=new Date();//取时间
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
String dateString = formatter.format(date);
System.out.println(dateString);
Festival f = new Festival();
Date dt = f.getDate(dateString);
System.out.println(f.isWorkDay(dt));
}
}
mysql判断当前日期是否为节假日_java 判断日期是否是节假日相关推荐
- java判断日期是否节假日_java 判断日期是否是节假日
标签: 1.新建一个excel命名为"节假日.xls"存放节假日,模板格式如下 2.判断是否是节假日的类 工作日返回true ,休息日返回false. 需要引用poi-bin-3. ...
- java怎么判断对象不为空_java判断对象是否为空的方法
java判断对象是否为空的方法 发布时间:2020-06-25 14:39:17 来源:亿速云 阅读:134 作者:Leah 这篇文章将为大家详细讲解有关java判断对象是否为空的方法,文章内容质量较 ...
- java判断两个int相等_Java 判断两个变量是否相等
判断两个变量是否相等的方式有两种:利用运算符 == 利用equals方法 (1)比较基本Java基本数据类型 比较基本数据类型,只能用"==",不能用equals,这里比较的是两个 ...
- java判断ftp创建目录是否成功_Java判断Ftp服务器目录是否存在,若不存在创建目录 ....
解决方法1: package com.soft4j.log4j; import java.io.IOException; import sun.net.ftp.FtpClient; public cl ...
- java 判断一个词是不是成语_Java 判断字符串a和b是否互为旋转词
旋转词:把字符串str的任意部分移动到后面形成的新字符串叫做字符串str的旋转词. 比如abc的旋转词有 abc,acb,cba,... 判断str1和str2是否互为旋转词,其最优解可以是时间复杂度 ...
- java判断输入值是否在数组_java判断特定值是否在数组中的方法
java判断特定值是否在数组中的方法: 使用List:public static boolean useList(String[] arr, String targetValue) { return ...
- java 判断是否为cst格式_Java判断文件编码格式
1:简单判断是UTF-8或不是UTF-8,因为一般除了UTF-8之外就是GBK,所以就设置默认为GBK. 按照给定的字符集存储文件时,在文件的最开头的三个字节中就有可能存储着编码信息,所以,基本的原理 ...
- java判断对象属性为空_Java判断对象属性全为空
在项目中,处理复杂页面提交的时候,比如批量添加文章的时候,下面这种情况 当前页面存在多篇文章对象:后台我们接收一般使用 List,如下面这种格式提交news[0].content news[0].ti ...
- java判断200以内的素数_java判断101-200之间的素数并输出
你知道java判断101到200之间的素数并且输出素数应该如何实现吗?下面就让我们一起来详细的了解一下吧! 一.题目 判断101-200之间有多少个素数,并且输出所有素数. 二.思路 判断素数的方法 ...
最新文章
- Python 一种接触就容易爱上的语言一
- 使用gluoncv.model_zoo进行目标检测
- 新的C库Bionic的介绍
- 阿里云ECS家族再添新成员,推出密集计算型实例规格族ic5
- 全新iPhone“Pro”命名要实锤:新增配色是“原谅色”本色吧?
- Java基础学习总结(41)——JPA常用注解
- 浙大 pat 1023题解
- 阶段3 1.Mybatis_12.Mybatis注解开发_7 Mybatis注解开发一对多的查询配置
- CentOS6.3 编译安装LAMP(4):编译安装 PHP5.3.27
- SnagIt怎么使用 SnagIt使用教程
- android安卓字体下载,安卓手机字体29款打包下载
- mysql select 列名_Mysql查询出所有列名
- 【树莓派】树莓派4B新手篇:安装官网Raspbian Buster系统及基础配置
- MobSF分析.ipa文件,MobSF分析iOS app
- 文件查找工具locatfind
- python 网络拓扑图_python 网络拓扑图
- origin画图畸变
- Windows 10快速删除大量回收站文件以及由此引起的回收站右键清空反应慢问题的解决
- 华为S5720S重置密码
- Mininet系列实验(三):Mininet命令延伸实验扩展