润乾报表v4-自定义函数计算两个日期之间的假期数

问题描述:

客户要求计算两个日期之间的工作天数,几经周折之下想到了一个反过来计算的方法,为什么不求出两个日期之间的假期和两个日期之间的实际天数,然后来进行相减操作呢?

 

解决方法:

由于函数不包含计算假期的函数,所以得通过自定义函数实现

 

主要思路:

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;

      }

}

你可能感兴趣的:(润乾报表v4-自定义函数计算两个日期之间的假期数)