Próbuję uzyskać pierwszą datę i ostatnią datę danego miesiąca i roku. Użyłem następującego kodu, aby uzyskać ostatnią datę w formacie rrrrMMdd. Ale nie mógł dostać tego formatu. Również wtedy chcę datę rozpoczęcia w tym samym formacie. Nadal nad tym pracuję. Czy ktoś może mi pomóc w ustalaniu poniższego kodu.java otrzymam pierwszą datę i ostatnią datę danego miesiąca oraz dany rok
public static java.util.Date calculateMonthEndDate(int month, int year) {
int[] daysInAMonth = { 29, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
int day = daysInAMonth[month];
boolean isLeapYear = new GregorianCalendar().isLeapYear(year);
if (isLeapYear && month == 2) {
day++;
}
GregorianCalendar gc = new GregorianCalendar(year, month - 1, day);
java.util.Date monthEndDate = new java.util.Date(gc.getTime().getTime());
return monthEndDate;
}
public static void main(String[] args) {
int month = 3;
int year = 2076;
final java.util.Date calculatedDate = calculateMonthEndDate(month, year);
SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
format.format(calculatedDate);
System.out.println("Calculated month end date : " + calculatedDate);
}
Dobrze Jakie wyniki są * * otrzymujesz? I dlaczego dokonujesz konwersji z 'Date' (wyniku' Calendar.getTime() 'na' long', a następnie tworzenie nowego 'Date')? Czy możesz przełączyć się na używanie Joda Time, co sprawi, że wszystko będzie o wiele starsze? –
możliwy duplikat [Jak uzyskać pierwszą datę i ostatnią datę poprzedniego miesiąca? (Java)] (http://stackoverflow.com/questions/10828398/how-to-get-the-first-date-and-last-date-t--previous-month-java) –