使用jodastime库获取前一天的日期

时间:2013-07-02 19:35:53

标签: java jodatime

我需要找出一种方法来获得前一天不包括周末。

例如:假设它是2013年7月1日,我想提前一天,所以它应该在2013年6月28日而不是2013年6月30日返回。

我经常使用日历库,但经过研究,看起来像是JodaTime库。

1 个答案:

答案 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);
    }
}