Closed. This question does not meet Stack Overflow guidelines。它当前不接受答案。
想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
6年前关闭。
我需要找出一种可以提前一天(不包括周末)的方式。
例如:假设它的日期为2013年7月1日,而我想提前一天,因此它应该返回2013年6月28日而不是2013年6月30日。
我已经使用了很多日历库,但是经过研究后,似乎JodaTime库是一个不错的选择。
请注意,您可能会更有效率:
想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
6年前关闭。
我需要找出一种可以提前一天(不包括周末)的方式。
例如:假设它的日期为2013年7月1日,而我想提前一天,因此它应该返回2013年6月28日而不是2013年6月30日。
我已经使用了很多日历库,但是经过研究后,似乎JodaTime库是一个不错的选择。
最佳答案
这样的事情应该做到:
static LocalDate oneDayBackExcludingWeekends(LocalDate date) {
do {
date = date.minusDays(1);
} while (date.getDayOfWeek() == DateTimeConstants.SUNDAY ||
date.getDayOfWeek() == DateTimeConstants.SATURDAY);
return date;
}
请注意,您可能会更有效率:
static LocalDate oneDayBackExcludingWeekends(LocalDate date) {
switch (date.getDayOfWeek()) {
case DateTimeConstants.MONDAY:
return date.minusDays(3);
case DateTimeConstants.SUNDAY:
return date.minusDays(2);
default:
return date.minusDays(1);
}
}
10-04 22:45