小编典典

寻找下一个工作日

sql

假设我在数据库中存储了一堆假期。

我需要做的是找出下一个工作日,不包括数据库中定义的星期六和公众假期。

例如。

假设今天是2月15日(星期五),而17日和18日是公众假期(在数据库中定义为日期时间)。因此,现在当我按下显示下一个工作日的按钮时,它将返回2月19日。

哪种方法最有效?


阅读 201

收藏
2021-03-23

共1个答案

小编典典

最简单

第1步:从数据库获取假期并将其格式化为您的格式,并将其保留在 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);
}
2021-03-23