Tôi muốn biết nếu có một enum hiện có chứa tất cả các ngày trong tuần trong Java. Tôi đang sử dụng Lịch để xử lý logic thời gian nhưng tôi không thấy bất cứ điều gì như thế này (tôi có thể tạo ra nó bản thân mình nhưng tôi muốn sử dụng một cái gì đó hiện có). Tôi cũng thấy các threeten project nhưng nó vẫn còn trong alpha. Kể từ khi một enum chứa ngày trong tuần là như vậy tầm thường nó được thể hiện bởi ánh nắng mặt trời trong tài liệu enum, tôi đã suy nghĩ một cái gì đó có thể đã tồn tại. Bất kỳ ý tưởng?Bao nhiêu ngày trong Java với Lịch
Trả lời
Trong lớp lịch, có:
/**
* Value of the {@link #DAY_OF_WEEK} field indicating
* Sunday.
*/
public final static int SUNDAY = 1;
/**
* Value of the {@link #DAY_OF_WEEK} field indicating
* Monday.
*/
public final static int MONDAY = 2;
/**
* Value of the {@link #DAY_OF_WEEK} field indicating
* Tuesday.
*/
public final static int TUESDAY = 3;
/**
* Value of the {@link #DAY_OF_WEEK} field indicating
* Wednesday.
*/
public final static int WEDNESDAY = 4;
/**
* Value of the {@link #DAY_OF_WEEK} field indicating
* Thursday.
*/
public final static int THURSDAY = 5;
/**
* Value of the {@link #DAY_OF_WEEK} field indicating
* Friday.
*/
public final static int FRIDAY = 6;
/**
* Value of the {@link #DAY_OF_WEEK} field indicating
* Saturday.
*/
public final static int SATURDAY = 7;
(nguồn: java.util.Calendar)
Không một enum vì đã có không khi Lịch đã được giới thiệu trong JDK 1.1.
Tôi biết rằng tôi có thể truy cập mỗi ngày. Những gì tôi muốn là một danh sách có chứa tất cả các ngày mà không cần phải tự tạo ra nó. Ngoài ra, tôi muốn có giá trị String, không phải int. – fxm
@fxm, bạn nên tạo enum một mình nếu bạn muốn, nó sẽ không mất nhiều thời gian. Như đã nói, lớp 'Lịch' đã được giới thiệu trước khi enums được đưa vào Java – SpongeBobFan
Tôi đoán tôi sẽ làm như vậy, nó chỉ là một cái gì đó kỳ lạ như thế này đã không tồn tại. – fxm
Các lớp ngày giờ phiền hà cũ như java.util.Calendar
giờ đây được thừa kế, được thay thế bởi các lớp java.time.
java.time.DayOfWeek
enum
Java hiện nay bao gồm các java.time.DayOfWeek
enum.
Vượt qua các đối tượng của enum này chứ không phải chỉ là số nguyên 1-7 để làm cho mã của bạn tự tài liệu hơn, cung cấp loại an toàn và đảm bảo một loạt các giá trị hợp lệ.
invoices.printReportForDayOfWeek(DayOfWeek.MONDAY);
Đánh số là 1-7 cho thứ Hai đến Chủ Nhật, theo tiêu chuẩn ISO 8601.
Nhận tên được bản địa hóa trong ngày bằng cách gọi getDisplayName
.
String output = DayOfWeek.MONDAY.getDisplayName(TextStyle.FULL , Locale.CANADA_FRENCH) ; // Or Locale.US, etc.
Để theo dõi nhiều ngày trong tuần, sử dụng một EnumSet
(thực hiện Set
) hoặc EnumMap
(thực hiện Map
).
Set<DayOfWeek> weekend = EnumSet.of(DayOfWeek.SATURDAY , DayOfWeek.SUNDAY) ;
…
Boolean todayIsWeekend = weekend.contains(LocalDate.now(ZoneId.of("America/Montreal")).getDayOfWeek());
Về java.time
Khung java.time được xây dựng vào Java 8 và sau đó. Các lớp này thay thế các lớp ngày giờ phiền hà cũ như java.util.Date
, .Calendar
, & java.text.SimpleDateFormat
.
Dự án Joda-Time, hiện đang ở maintenance mode, khuyên di chuyển sang java.time.
Để tìm hiểu thêm, hãy xem Oracle Tutorial. Và tìm kiếm Stack Overflow cho nhiều ví dụ và giải thích.
Hầu hết các chức năng java.time được back-chuyển đến Java 6 & 7 trong ThreeTen-Backport và tiếp tục thích nghi với Android trong ThreeTenABP.
Dự án ThreeTen-Extra mở rộng java.time với các lớp bổ sung. Dự án này là một nền tảng chứng minh cho những bổ sung có thể có trong tương lai vào java.time. Bạn có thể tìm thấy một số lớp học hữu ích tại đây như Interval
, YearWeek
, YearQuarter
và hơn thế nữa.
- 1. Bao nhiêu ngày cho đến ngày X-Y-Z?
- 2. Tôi có thể sử dụng bao nhiêu Java với GWT?
- 3. Độ phức tạp của LinkedList.getLast() trong Java là bao nhiêu?
- 4. Có bao nhiêu kết nối JDBC trong Java?
- 5. Độ phức tạp của HashMap.containsValue() trong java là bao nhiêu?
- 6. Có bao nhiêu lớp trong ấn bản tiêu chuẩn Java?
- 7. Độ phức tạp của HashMap.containsKey() trong java là bao nhiêu?
- 8. bao nhiêu ngày để thêm cho "nửa tháng"
- 9. Có bao nhiêu Java SE api được viết bằng Java?
- 10. Ngày so với TimeStamp so với lịch?
- 11. Điều khiển ngày tháng và lịch Java
- 12. có bao nhiêu múi giờ?
- 13. Java: vòng lặp trống sử dụng bao nhiêu thời gian?
- 14. Ngày tối thiểu trong Java
- 15. Mảng đề xuất Java (Solr) đắt bao nhiêu?
- 16. Java String.trim() sẽ xóa bao nhiêu khoảng trắng?
- 17. Chuỗi java của tôi mất bao nhiêu bộ nhớ?
- 18. Có bao nhiêu LINQ?
- 19. Bao nhiêu PHP bao gồm quá nhiều?
- 20. GUID ngắn bao nhiêu?
- 21. Phiên Meteor bao nhiêu là
- 22. thêm hơn 30 ngày với phương thức add() của Lịch trong Java
- 23. Có bao nhiêu cột trong bảng MySQL
- 24. Có bao nhiêu tuples trong kết nối?
- 25. Tôi có thể tính toán có bao nhiêu ngày cuối tuần giữa hai ngày trong SQL Server?
- 26. Thêm ngày vào lịch
- 27. giá trị băm của mật khẩu trong java là bao nhiêu?
- 28. Bao nhiêu NumPy và SciPy là trong C?
- 29. Di chuyển từ Lịch Java sang Ngày Joda
- 30. Khóa bị sâu bao nhiêu?
Nếu bạn đang tìm kiếm một API thời gian và ngày sane, hãy xem tại http://www.joda.org/joda-time/ - nếu họ không có enum trong ngày, Tuy nhiên. Tại sao bạn lại cần có một cái? –
@PhilippReichart Tôi muốn hiển thị các bảng trong JSP với một cột cho mỗi ngày. – fxm
Vì vậy, đây là về i18n? – atamanroman