gpt4 book ai didi

java - 使用java指向前一个工作日

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:47:54 27 4
gpt4 key购买 nike

我刚开始使用 java.calendar.api。 我想使用 java 指向给定日期的前一个工作日。 但是当我使用 calendar.api 来操作日期时,情况会继续增加 因为我必须考虑通常的周末和上个月的指向,而且我还必须考虑我所在地区的地区性假期......

例如:假设我必须考虑美国假期并指出那一天的前一天。

有什么方法可以定义我自己的日历并使用它,以便日期操作可以感知所有这些常见的变化?

最佳答案

虽然您应该考虑使用 Joda Time库,这里是 Java Calendar API 的开始:

public Date getPreviousWorkingDay(Date date) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);

int dayOfWeek;
do {
cal.add(Calendar.DAY_OF_MONTH, -1);
dayOfWeek = cal.get(Calendar.DAY_OF_WEEK);
} while (dayOfWeek == Calendar.SATURDAY || dayOfWeek == Calendar.SUNDAY);

return cal.getTime();
}

这只考虑周末。您必须添加额外的支票来处理您认为假期的日子。例如,您可以添加 || isHoliday(cal)while 条件。然后实现该方法,例如:

public boolean isHoliday(Calendar cal) {
int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH) + 1;
int dayOfMonth = cal.get(Calendar.DAY_OF_MONTH);

if (month == 12 && dayOfMonth == 25) {
return true;
}

// more checks

return false;
}

关于java - 使用java指向前一个工作日,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5907921/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com