Tôi cần lấy ngày đầu tiên (là org.joda.time.LocalDate
) của tháng và ngày cuối cùng. Bắt đầu tiên là tầm thường, nhưng nhận được cuối cùng có vẻ cần một số logic như tháng có chiều dài khác nhau và chiều dài tháng hai thậm chí thay đổi qua nhiều năm. Có một cơ chế cho điều này đã được xây dựng trong JodaTime hay tôi nên thực hiện nó bản thân mình?Làm thế nào để có được ngày cuối cùng của một tháng cụ thể với JodaTime?
Trả lời
Làm thế nào về:
LocalDate endOfMonth = date.dayOfMonth().withMaximumValue();
dayOfMonth()
trả về một LocalDate.Property
đại diện cho "ngày của tháng" lĩnh vực theo một cách mà biết nguồn gốc LocalDate
.
Vì nó xảy ra, phương pháp withMaximumValue()
thậm chí còn documented để giới thiệu nó cho nhiệm vụ đặc biệt này:
hoạt động này rất hữu ích cho việc thu thập một LOCALDATE vào ngày cuối cùng của tháng, như độ dài tháng khác nhau.
LocalDate lastDayOfMonth = dt.dayOfMonth().withMaximumValue();
@Jon Skeet Làm cách nào để sử dụng API ngày và giờ mới của Java 8? –
@ WarrenM.Nocos: Tôi muốn sử dụng 'dt.with (TemporalAdjusters.lastDayOfMonth())' –
Một câu hỏi cũ, nhưng một kết quả google hàng đầu khi tôi đang tìm kiếm này.
Nếu ai đó cần ngày cuối cùng thực tế như một int
thay vì sử dụng JodaTime bạn có thể làm điều này:
public static final int JANUARY = 1;
public static final int DECEMBER = 12;
public static final int FIRST_OF_THE_MONTH = 1;
public final int getLastDayOfMonth(final int month, final int year) {
int lastDay = 0;
if ((month >= JANUARY) && (month <= DECEMBER)) {
LocalDate aDate = new LocalDate(year, month, FIRST_OF_THE_MONTH);
lastDay = aDate.dayOfMonth().getMaximumValue();
}
return lastDay;
}
Sử dụng JodaTime, chúng ta có thể làm điều này:
public static final Integer CURRENT_YEAR = DateTime.now().getYear(); public static final Integer CURRENT_MONTH = DateTime.now().getMonthOfYear(); public static final Integer LAST_DAY_OF_CURRENT_MONTH = DateTime.now() .dayOfMonth().getMaximumValue(); public static final Integer LAST_HOUR_OF_CURRENT_DAY = DateTime.now() .hourOfDay().getMaximumValue(); public static final Integer LAST_MINUTE_OF_CURRENT_HOUR = DateTime.now().minuteOfHour().getMaximumValue(); public static final Integer LAST_SECOND_OF_CURRENT_MINUTE = DateTime.now().secondOfMinute().getMaximumValue(); public static DateTime getLastDateOfMonth() { return new DateTime(CURRENT_YEAR, CURRENT_MONTH, LAST_DAY_OF_CURRENT_MONTH, LAST_HOUR_OF_CURRENT_DAY, LAST_MINUTE_OF_CURRENT_HOUR, LAST_SECOND_OF_CURRENT_MINUTE); }
Như mô tả ở đây trong nhỏ của tôi gist on github: A JodaTime and java.util.Date Util Class with a lot of usefull functions.
Một phương pháp đơn giản khác là:
//Set the Date in First of the next Month:
answer = new DateTime(year,month+1,1,0,0,0);
//Now take away one day and now you have the last day in the month correctly
answer = answer.minusDays(1);
điều gì xảy ra sau đó nếu tháng của bạn là = 12? – jon
- 1. Làm thế nào để có được ngày cuối cùng của tháng bằng cách sử dụng php
- 2. ngày cuối cùng của tháng tính toán
- 3. Làm cách nào để tôi chỉ bật những ngày cuối cùng của tháng với Datepicker Jquery?
- 4. Làm thế nào để có được thứ sáu cuối cùng của tháng (s) sử dụng .NET
- 5. Nhận ngày cuối cùng của tháng?
- 6. Làm cách nào để có được thời gian có thể cuối cùng của một ngày cụ thể
- 7. Ngày cuối cùng của tháng trong .NET
- 8. Cách tìm ngày cuối cùng của tháng?
- 9. Làm thế nào tôi có thể lấy ngày của một ngày cụ thể với PHP
- 10. javascript ngày ngày cuối cùng của tháng trước
- 11. Jodatime bắt đầu ngày và cuối ngày
- 12. Làm thế nào để có được những ngày cuối cùng của tháng trước trong Javascript hoặc JQuery
- 13. Lấy ngày cuối cùng của tháng trong SQL
- 14. SQL Query để tìm ngày cuối cùng của tháng
- 15. Cách tốt nhất để có được ngày đầu tiên và cuối cùng của tháng trước?
- 16. Trong PHP, có cách nào dễ dàng để có được ngày đầu tiên và cuối cùng của một tháng không?
- 17. Làm cách nào để nhận được số ngày trong tháng cho tháng và năm cụ thể?
- 18. Giải pháp cho CronSequenceGenerator Ngày cuối cùng của tháng?
- 19. Lấy ngày tháng đầu tiên và ngày cuối cùng của tháng trước đó trong C#
- 20. Làm cách nào để có được ngày đầu tiên và ngày cuối cùng của tháng với Thời gian chờ của Perl?
- 21. Làm thế nào để thay đổi màu sắc của một thanh công cụ ngày tháng jquery
- 22. Tính DayOfWeek cuối cùng của tháng
- 23. Java: Làm thế nào để tôi có được ngày của x ngày trong một tháng (ví dụ: Thứ hai thứ ba trong tháng 2 năm 2012)
- 24. StringBuilder: làm thế nào để có được chuỗi cuối cùng?
- 25. Làm cách nào để có được ngày cuối cùng trong tháng bằng cách sử dụng Dịch vụ báo cáo SQL
- 26. Làm thế nào để có được hồ sơ cuối cùng
- 27. PHP: Làm thế nào để có được chủ nhật trước đó của một ngày cụ thể trong quá khứ ..?
- 28. Làm thế nào để có được lỗi cuối cùng (WSAGetLastError)?
- 29. php: strtotime ("31/12/2004 +6 tháng")); không quay trở lại ngày cuối cùng của tháng
- 30. làm thế nào để có được char cuối cùng của một chuỗi trong PHP?
Chỉ cần thông báo, điều này cũng hoạt động với các loại 'DateTime' :) – vikingsteve