Tôi đang cố gắng lấy ngày đầu tiên và ngày cuối cùng của tháng và năm đã cho. Tôi đã sử dụng đoạn mã sau để lấy ngày cuối cùng theo định dạng yyyyMMdd. Nhưng không thể có định dạng này. Ngoài ra sau đó tôi muốn ngày bắt đầu trong cùng một định dạng. Tôi vẫn đang làm việc này. Bất cứ ai có thể giúp tôi trong việc sửa mã dưới đây.java nhận ngày đầu tiên và ngày cuối cùng của tháng đã cho và năm nhất định
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);
}
Vâng những gì kết quả * là * bạn nhận được? Và tại sao bạn chuyển đổi từ 'Ngày' (kết quả của' Lịch.getTime() 'thành một' long', và sau đó tạo một 'Date' mới? Và bạn có thể chuyển sang sử dụng Thời gian Joda, điều này sẽ làm cho tất cả những điều này trở nên dễ hiểu hơn không? –
có thể trùng lặp của [Làm thế nào để có được ngày đầu tiên và ngày cuối cùng của tháng trước? (Java)] (http://stackoverflow.com/questions/10828398/how-to-get-the-first-date-and-last-date-of-the-previous-month-java) –