假设我在数据库中存储了一堆假期。
我需要做的是找出下一个工作日,不包括数据库中定义的星期六和公众假期。
例如。
假设今天是2月15日(星期五),而17日和18日是公众假期(在数据库中定义为日期时间)。因此,现在当我按下显示下一个工作日的按钮时,它将返回2月19日。
哪种方法最有效?
最简单
第1步:从数据库获取假期并将其格式化为您的格式,并将其保留在 List<String>
List<String>
第2步:创建一个增加天数的方法。
public static Date addDays(Date d, int days) { Calendar cal = Calendar.getInstance(); cal.setTime(d); cal.add(Calendar.DATE, days); return cal.getTime(); }
步骤3:建立寻找假期的方法。
public boolean isBankHoliday(java.util.Date d) { Calendar c = new GregorianCalendar(); c.setTime(d); if((Calendar.SATURDAY == c.get(c.DAY_OF_WEEK)) || (Calendar.SUNDAY == c.get(c.DAY_OF_WEEK)) || bankHolidays.contains(dString)) { return (true); } else { return false; } }
步骤4:获取您的输入日期。检查银行假期,循环直到找到工作日。
while (isBankHoliday(myDate)) { myDate = addDays(myDate, 1); }