获取最近完整周和最近完整月份的开始/结束日期的最佳方法是什么。
I.E鉴于今天的日期,如何找出刚刚完成的一周,同样的月份。
答案 0 :(得分:5)
我得到了解决方案
LocalDate today = new LocalDate()
LocalDate lastWeek = today.minusWeeks(1)
start= lastWeek .dayOfWeek().withMinimumValue().minusDays(1)
end = lastWeek.dayOfWeek().withMaximumValue().minusDays(1)
LocalDate lastMonth = today.minusMonths(1)
timeStart = lastMonth.dayOfMonth().withMinimumValue()
timeEnd = lastMonth.dayOfMonth().withMaximumValue()
答案 1 :(得分:4)
一个月很容易 - 比如:
LocalDate endOfPreviousMonth = date.withDayOfMonth(1).minusDays(1);
一个星期它有点棘手。你可以这样做:
LocalDate previousSunday = date.withDayOfWeek(DateTimeConstants.MONDAY)
.minusDays(1);
...但我不清楚withDayOfWeek
是否会一直转到之前的星期一或最近的星期一。 (这是我要在Noda Time中找出并给出选择的东西......)
相反,你可以试试这个:
// Go back 1 day for Monday, 2 days for Tuesday etc
LocalDate previousSunday = date.minusDays(date.getDayOfWeek());
一旦你完成了一周或一个月的结束,就可以轻松地进入 start :
LocalDate startOfPreviousMonth = endOfPreviousMonth.withDayOfMonth(1);
LocalDate startOfPreviousWeek = previousSunday.minusDays(6);