2014-03-06 14 views

Antwort

82

Verwenden Sie einfach withDayOfMonth und lengthOfMonth():

LocalDate initial = LocalDate.of(2014, 2, 13); 
LocalDate start = initial.withDayOfMonth(1); 
LocalDate end = initial.withDayOfMonth(initial.lengthOfMonth()); 
+0

FYI siehe andere Antworten – assylias

0

Versuchen Sie folgendes:

LocalDate initial = LocalDate.of(2014, 2, 13); 
LocalDate start = initial.withDayOfMonth(1);   
LocalDate end = initial.withDayOfMonth(initial.getMonthOfYear().getLastDayOfMonth(false)); 
System.out.println(start); 
System.out.println(end); 

Sie den Wunsch Ausgang finden können, müssen aber von Parameter true/false für kümmern getLastDayOfMonth Methode

dieser Parameter bezeichnet Sprung Jahr

+0

Es ist nicht notwendig, 'getLastDayOfMonth' zu verwenden - siehe meine Antwort für einen einfacheren Ansatz. –

6

Jon Skeets Antwort ist richtig und hat meine upvote verdient, nur der Vollständigkeit halber diese etwas andere Lösung fügt hinzu:

import static java.time.temporal.TemporalAdjusters.lastDayOfMonth; 

LocalDate initial = LocalDate.of(2014, 2, 13); 
LocalDate start = initial.withDayOfMonth(1); 
LocalDate end = initial.with(lastDayOfMonth()); 
73

Die API, um eine Lösung zu unterstützen, wurde entwickelt, die in engem Zusammenhang mit geschäftlichen Anforderungen entspricht

import static java.time.temporal.TemporalAdjusters.*; 

LocalDate initial = LocalDate.of(2014, 2, 13); 
LocalDate start = initial.with(firstDayOfMonth()); 
LocalDate end = initial.with(lastDayOfMonth()); 

Allerdings sind Jons Lösungen auch in Ordnung.

+0

Hier werden die speziell für dieses spezielle Problem erstellten API-Ressourcen verwendet. – jpangamarca

Verwandte Themen