2017-04-05 182 views

回答

2

TemporalAdjuster接口提供了類操縱日期 - 時間值。 TemporalAdjusters類提供了幾個方便的實現。

策略是首先確定當前日期。這需要一個時區。對於任何特定的時刻,日期因地區而異。

從今天的日期開始,獲取本月的第一天和最後一天。從我們所要求的每一個我們希望的星期幾的上一次或下一次出現中。我們也接受,無論是第一個月還是最後一個月實際上都可能是期望的星期幾,這是「orSame」在以下看到的TemporalAdjusters調用中的含義。

ZoneId z = ZoneId.of("America/Montreal"); 
LocalDate today = LocalDate.now(z); 

LocalDate firstOfMonth = today.with(TemporalAdjusters.firstDayOfMonth()); 
LocalDate monday = firstOfMonth.with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY)); 

LocalDate endOfMonth = today.with(TemporalAdjusters.lastDayOfMonth()); 
LocalDate sunday = endOfMonth.with(TemporalAdjusters.nextOrSame(DayOfWeek.SUNDAY)); 

順便說一句,如果您需要表示整個月,請看YearMonth類。

+0

謝謝你,那個例子工作 – Juanjo

0

您可以使用日曆並迭代找到你要找像天:Calendar.getInstance().get(Calendar.MONDAY)Calendar.getInstance().get(Calendar.SUNDAY));

+0

麻煩的'日曆'現在是遺留的,被java.time類取代。 –

相關問題