How can I add business days to the current date in Java?

后端 未结 14 1388
Happy的楠姐
Happy的楠姐 2020-12-03 02:05

How can I add business days to the current date in Java?

public Calendar addBusinessDate(Calendar cal, int days) {
//
// code goes over here
//
}
         


        
14条回答
  •  清歌不尽
    2020-12-03 02:45

    This is the method I came up with:

        private Date addLaborDays(Integer days, Date date){
            Collection holidaysList = getHolidays();
    
            Calendar cal = Calendar.getInstance();
            cal.setTime(date);
            cal.add(Calendar.DATE, 1);
            Date dateTemp = cal.getTime();
    
            if(days == 1) return dateTemp; 
            if(holidaysList.contains(dateTemp) || DateUtil.isWeekend(dateTemp)){
                return addLaborDays(days, dateTemp);
            } else {
                return addLaborDays(days-1, dateTemp);
            }
        }
    

    Method getHolidays() queries a custom holidays database table, and method DateUtil.isWeekend(dateTemp) returns true if dateTemp is Saturday or Sunday.

提交回复
热议问题