2012-08-17 20 views
8

Mögliche Duplizieren:
How to get the first date and last date of the previous month? (Java)Erhalten ersten und letzten Tag des Vormonats

in Java, wie den ersten und letzten Tag des Vormonats zu bekommen?

Wenn ich nicht falsch bin, ist der folgende Code, um das letzte Datum des Vormonats zu erhalten.

Calendar aCalendar = Calendar.getInstance(); 
aCalendar.set(Calendar.DAY_OF_MONTH, -1);  
aCalendar.add(Calendar.DAY_OF_MONTH, -1) ; 
System.out.println(new Timestamp(aCalendar.getTime().getTime())); 

Korrigieren Sie mich, wenn ich falsch liege.

Vielen Dank.

+1

Sie sagen "* mich korrigieren, wenn ich falsch bin *". Was siehst du, wenn du diesen Code ausführst? – Lion

+0

@keppil: Danke, dass es geholfen hat und tut mir leid, dass ich den Link verpasst habe, bevor ich das gepostet habe. –

Antwort

28

Verwenden getActualMaximum()

Calendar aCalendar = Calendar.getInstance(); 
// add -1 month to current month 
aCalendar.add(Calendar.MONTH, -1); 
// set DATE to 1, so first date of previous month 
aCalendar.set(Calendar.DATE, 1); 

Date firstDateOfPreviousMonth = aCalendar.getTime(); 

// set actual maximum date of previous month 
aCalendar.set(Calendar.DATE,  aCalendar.getActualMaximum(Calendar.DAY_OF_MONTH)); 
//read it 
Date lastDateOfPreviousMonth = aCalendar.getTime(); 
+0

aleaCalendar.setCalendar.DATE, 1); Diese Zeile muss zu aCalendar.set (Calendar.DATE, 1) geändert werden; – sandeepkunkunuru

14
Calendar aCalendar = Calendar.getInstance(); 
aCalendar.set(Calendar.DATE, 1); 
aCalendar.add(Calendar.DAY_OF_MONTH, -1); 
Date lastDateOfPreviousMonth = aCalendar.getTime(); 
aCalendar.set(Calendar.DATE, 1); 
Date firstDateOfPreviousMonth = aCalendar.getTime(); 
Verwandte Themen