Chciałbym wiedzieć, czy istnieje wyliczenie zawierające wszystkie dni tygodnia w Javie. Używam Kalendarza do obsługi logiki czasowej, ale nie widziałem czegoś takiego (sam mógłbym to zrobić, ale raczej użyłbym czegoś istniejącego). Widziałem także threeten project, ale nadal jest w alfa. Ponieważ wyliczanka zawierająca dni tygodnia jest tak banalna, że słońce pokazuje ją w dokumentacji enum, myślałem, że coś może już istnieć. Jakieś pomysły ?Enum dni w Javie z kalendarzem
Odpowiedz
W klasie kalendarzowego, jest:
/**
* 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;
(źródło: java.util.Calendar)
Nie enum, ponieważ nie było nikogo kiedy kalendarz został wprowadzony w JDK 1.1.
Jestem świadomy, że mogę uzyskać dostęp do każdego dnia. To, co chcę, to lista zawierająca wszystkie dni bez jej tworzenia. Ponadto chciałbym mieć wartości String, a nie int. – fxm
@fxm, powinieneś utworzyć enum sam, jeśli chcesz, to nie zajmie dużo czasu. Jak powiedzieliśmy, klasa 'Calendar' została wprowadzona przed wyliczeniem przyszedł do Java – SpongeBobFan
Myślę, że zrobię to, to po prostu dziwne coś takiego już nie istnieje. – fxm
Kłopotliwe stare klasy czasu i daty, takie jak java.util.Calendar
, są już starsze, wyparte przez klasy java.time.
java.time.DayOfWeek
enum
Java zawiera teraz java.time.DayOfWeek
enum.
Przekaż obiekty tego wyliczenia zamiast zwykłych liczb całkowitych 1-7, aby kod był bardziej samokomponowany, zapewnij bezpieczeństwo typu i zapewnij zakres prawidłowych wartości.
invoices.printReportForDayOfWeek(DayOfWeek.MONDAY);
Numeracja to 1-7 od poniedziałku do niedzieli, zgodnie z normą ISO 8601.
Uzyskaj zlokalizowaną nazwę dnia, dzwoniąc pod numer getDisplayName
.
String output = DayOfWeek.MONDAY.getDisplayName(TextStyle.FULL , Locale.CANADA_FRENCH) ; // Or Locale.US, etc.
Aby śledzić wiele dni tygodnia, należy użyć EnumSet
(wdrożenie Set
) lub EnumMap
(wdrożenie Map
).
Set<DayOfWeek> weekend = EnumSet.of(DayOfWeek.SATURDAY , DayOfWeek.SUNDAY) ;
…
Boolean todayIsWeekend = weekend.contains(LocalDate.now(ZoneId.of("America/Montreal")).getDayOfWeek());
O java.time
Ramy java.time jest wbudowana w Java 8 i późniejszych. Klasy te zastępują stare, kłopotliwe klasy czasu i daty, takie jak java.util.Date
, .Calendar
, java.text.SimpleDateFormat
.
Projekt Joda-Time, obecnie w maintenance mode, zaleca migrację do java.time. Aby uzyskać więcej informacji, zobacz
. I wyszukaj Stack Overflow dla wielu przykładów i objaśnień.
Znaczna część funkcjonalności java.time powraca walcowy Java 6 & 7 w ThreeTen-Backport i ponadto dostosowany do Android w ThreeTenABP.
Projekt ThreeTen-Extra rozszerza java.time o dodatkowe klasy. Ten projekt jest poligonem wskazującym na możliwe przyszłe dodatki do java.time. Możesz znaleźć tutaj kilka użytecznych klas, takich jak Interval
, YearWeek
, YearQuarter
i więcej.
- 1. Deserializacja enum w Javie
- 2. Włącz Enum w Javie
- 3. Jak używać enum z wartościami w Javie
- 4. C-jak enum w Javie
- 5. Dodawanie dni do daty w Javie
- 6. Używanie enum do implementowania multitonów w Javie
- 7. Funkcja enum klasy ciała w Javie 1.6
- 8. Jak uzyskać wartość Enum z indeksu w Javie?
- 9. Android: jak połączyć się z Kalendarzem Google?
- 10. VBA nie może wysłać spotkania z kalendarzem
- 11. Dlaczego enum jest zadeklarowane w osobnym pliku, w Javie?
- 12. Używanie Enum dla fabryki w Javie, najlepsza praktyka?
- 13. Czy zastępowanie konstruktów enum klasami w Javie jest nadal aktualne?
- 14. Zdarzenie synchronizacji dodane programowo z kalendarzem google w Androidzie
- 15. Jak zwrócić wartość enum przez 2 parametrów w Javie
- 16. Java - Enum z polem tablicy
- 17. Enum z metodami funkcjonalnymi (Combine Class/Enum)
- 18. Ionic framework i kątowy problem z kalendarzem ui?
- 19. utwórz wydarzenie z pełnym kalendarzem, klikając kalendarz (szyny)
- 20. Emulator AVD nie ma opcji synchronizacji z Kalendarzem Google.
- 21. Cordova: Nie można zbudować projektu z corodva-plugin-kalendarzem
- 22. Java - konwersja z liczby dni powszednich na liczbę dni
- 23. Enum in enum
- 24. TimeSpan dni w konfiguracji?
- 25. Wyrażenia stałe z Enum
- 26. Wyodrębnianie dni z wartości numpy.timedelta64
- 27. Z instrukcją w Javie
- 28. Jak dodać dni robocze do NSDate tylko w dni robocze?
- 29. Powiązywanie dodatkowych informacji z .NET Enum
- 30. Change display enum
Jeśli szukasz rozsądnego interfejsu API z datą i godziną, zajrzyj na http://www.joda.org/joda-time/ - jeśli nie mają wyliczanki dni tygodnia, chociaż. Dlaczego jej potrzebujesz? –
@PhilippReichart Chcę wyświetlać tabele w JSP z kolumną na każdy dzień. – fxm
A więc chodzi o i18n? – atamanroman