我需要找出一种方法来获得前一天不包括周末。
例如:假设它是2013年7月1日,我想提前一天,所以它应该在2013年6月28日而不是2013年6月30日返回。
我经常使用日历库,但经过研究,看起来像是JodaTime库。
答案 0 :(得分:4)
这样的事情应该这样做:
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);
}
}