润乾报表v4-自定义函数计算两个日期之间的假期数
2016-11-30 09:26
477 查看
问题描述:
客户要求计算两个日期之间的工作天数,几经周折之下想到了一个反过来计算的方法,为什么不求出两个日期之间的假期和两个日期之间的实际天数,然后来进行相减操作呢?
解决方法:
由于函数不包含计算假期的函数,所以得通过自定义函数实现
主要思路:
1写一个获得日期的下一天的函数
2 写一个判断日期是否周末的函数
3 通过两个数组(a 特殊周末数组 b 国家假期数组)来对起始日期到结束日期的循环遍历判断是否属于这两个数组
部分代码:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class hlDay {
/**
* 获得指定日期的后一天
* @param cal
* @return
*/
public static String getNextDay(String cal, int i){
Calendar c = Calendar.getInstance();
Date date=null;
try {
date = new SimpleDateFormat(“yyyy/MM/dd”).parse(cal);
} catch (ParseException e) {
e.printStackTrace();
}
c.setTime(date);
int day=c.get(Calendar.DATE);
c.set(Calendar.DATE,day+i);
String dayAfter=new SimpleDateFormat(“yyyy/MM/dd”).format(c.getTime());
return dayAfter;
}
//判断是否是周末
public static boolean isWeekend(String cal) {
Calendar c = Calendar.getInstance();
Date date=null;
try {
date = new SimpleDateFormat(“yyyy/MM/dd”).parse(cal);
} catch (ParseException e) {
e.printStackTrace();
}
c.setTime(date);
if(c.get(Calendar.DAY_OF_WEEK)-1 == 0 || c.get(Calendar.DAY_OF_WEEK)- 1 == 6) {
return true;
} else{
return false;
}
}
客户要求计算两个日期之间的工作天数,几经周折之下想到了一个反过来计算的方法,为什么不求出两个日期之间的假期和两个日期之间的实际天数,然后来进行相减操作呢?
解决方法:
由于函数不包含计算假期的函数,所以得通过自定义函数实现
主要思路:
1写一个获得日期的下一天的函数
2 写一个判断日期是否周末的函数
3 通过两个数组(a 特殊周末数组 b 国家假期数组)来对起始日期到结束日期的循环遍历判断是否属于这两个数组
部分代码:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class hlDay {
/**
* 获得指定日期的后一天
* @param cal
* @return
*/
public static String getNextDay(String cal, int i){
Calendar c = Calendar.getInstance();
Date date=null;
try {
date = new SimpleDateFormat(“yyyy/MM/dd”).parse(cal);
} catch (ParseException e) {
e.printStackTrace();
}
c.setTime(date);
int day=c.get(Calendar.DATE);
c.set(Calendar.DATE,day+i);
String dayAfter=new SimpleDateFormat(“yyyy/MM/dd”).format(c.getTime());
return dayAfter;
}
//判断是否是周末
public static boolean isWeekend(String cal) {
Calendar c = Calendar.getInstance();
Date date=null;
try {
date = new SimpleDateFormat(“yyyy/MM/dd”).parse(cal);
} catch (ParseException e) {
e.printStackTrace();
}
c.setTime(date);
if(c.get(Calendar.DAY_OF_WEEK)-1 == 0 || c.get(Calendar.DAY_OF_WEEK)- 1 == 6) {
return true;
} else{
return false;
}
}
相关文章推荐
- 手把手地写了一个函数,计算出两个字符串日期之间的所有字符串型日期 集合
- Oracle常用函数:DateDiff() 返回两个日期之间的时间间隔自定义函数
- 润乾报表v4-自定义函数从oracle的blob字段中取数
- php自定义函数: 计算两个时间日期相隔的天数,时,分,秒
- [日期时间]函数(-),计算两个时间之间的秒数
- 【叶子函数分享二十三】计算两个日期之间的工作日
- DateDiff 函数——计算两个日期之间的时间间隔
- 手把手地写了一个函数,计算出两个字符串日期之间的所有字符串型日期 集合
- 【叶子函数分享二十三】计算两个日期之间的工作日
- 计算两个日期之间的周
- java 计算两个日期之间的天数
- 计算两个日期之间的工作日(去掉周末和节假日)
- JavaScript计算两个日期之间相差的天数
- 计算两个日期之间相差几年几月几日。
- iOS-计算两个日期之间的天数
- java计算两个日期之间相差的天数
- java计算两个日期之间相差的天数
- JS计算两个日期之间的天数,时间差计算
- Java中计算任意两个日期之间的工作天数
- C语言计算两个日期之间的天数