计算两个日期(不包括周末)的日期

pun*_*dit 4 java datetime jodatime

我在Spring 3.0项目中使用Joda time api来计算日期.现在我有一个开始和结束日期,我希望在这两个日期之间每天周末或周六或周日.我怎样才能做到这一点?

我看了这篇帖子Joda时间 - 两个日期之间的所有星期一.它提供了一些指导,但仍然含糊不清,如何排除两个日期.

lsc*_*hin 12

我假设你的问题是如何

每天除了周末或周六或周日之间的两个日期.

方案:

public static void main(String[] args) {
    final LocalDate start = LocalDate.now();
    final LocalDate end = new LocalDate(2012, 1, 14);

    LocalDate weekday = start;

    if (start.getDayOfWeek() == DateTimeConstants.SATURDAY ||
            start.getDayOfWeek() == DateTimeConstants.SUNDAY) {
        weekday = weekday.plusWeeks(1).withDayOfWeek(DateTimeConstants.MONDAY);
    }

    while (weekday.isBefore(end)) {
        System.out.println(weekday);

        if (weekday.getDayOfWeek() == DateTimeConstants.FRIDAY)
            weekday = weekday.plusDays(3);
        else
            weekday = weekday.plusDays(1);
    }
}
Run Code Online (Sandbox Code Playgroud)