Rab*_*bin 4 java sql sql-server-2008
假设我在我的数据库中存储了一堆假期.
我需要做的是找出下一个工作日,不包括星期六和数据库中定义的公众假期.
例如.
假设今天是2月15日星期五,17日和18日是公共假日,在数据库中定义为datetime.所以现在当我按下下一个工作日的按钮时,应该会在2月19日返回.
获得它的最有效方法是哪种?
Vaa*_*ndu 10
最简单的.
第1步:从数据库中获取假期并格式化为您的格式,并将其保存在 List<String>
第2步:创建一个添加日期的方法.
Run Code Online (Sandbox Code Playgroud)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;
}
}
Run Code Online (Sandbox Code Playgroud)
第4步:获取输入日期.检查银行假日,循环直到找到工作日.
while (isBankHoliday(myDate)) {
myDate = addDays(myDate, 1);
}
Run Code Online (Sandbox Code Playgroud)