java.time.DayOfWeek
Java 8, а позднее такое перечисление встроенной, java.time.DayOfWeek
.
По стандарту ISO 8601 неделя определяется как понедельник-воскресенье, с номером 1-7.
int dayNumber = DayOfWeek.MONDAY.getValue() ; // 1 = Monday, 7 = Sunday.
Преобразовать от ISO 8601 стиля, чтобы США
Если вы хотите в неделю, как правило, используется в Соединенных Штатах, с воскресенья будучи первым, использовать математику. Расчет по модулю 7, то плюс 1.
(DayOfWeek.SUNDAY.getValue() % 7) + 1
Как это:
System.out.println((DayOfWeek.SUNDAY.getValue() % 7) + 1) ;
System.out.println((DayOfWeek.MONDAY.getValue() % 7) + 1) ;
System.out.println((DayOfWeek.TUESDAY.getValue() % 7) + 1) ;
System.out.println((DayOfWeek.WEDNESDAY.getValue() % 7) + 1) ;
System.out.println((DayOfWeek.THURSDAY.getValue() % 7) + 1) ;
System.out.println((DayOfWeek.FRIDAY.getValue() % 7) + 1) ;
System.out.println((DayOfWeek.SATURDAY.getValue() % 7) + 1) ;
Вы вопрос противоречив и неясен, так что я не уверен в своей цели, если воскресенье, суббота быть 0-6, а затем использовать выше математику, но сделать не добавляйте один.
(DayOfWeek.SUNDAY.getValue() % 7) // Sunday = 0, Monday = 1 , … , Saturday = 6.
java.util.Calendar
константы
В то время как я никогда бы не рекомендовал использовать наследие Date
/Calendar
классов, но и для вашей информации, java.util.Calendar
класс определяет ряд int
констант (не перечисление) в течение дней в течение недели, где Calendar.SUNDAY
- 1
и т. д. до Calendar.SATURDAY
- 7
.
О java.time
java.time каркас встроен в Java 8 и более поздних версий. Эти классы вытесняют неприятные старые legacy классы времени, такие как java.util.Date
, Calendar
, & SimpleDateFormat
.
Проект Joda-Time, в настоящее время в maintenance mode, советует перейти на классы java.time.
Чтобы узнать больше, см. Oracle Tutorial. И поиск Stack Overflow для многих примеров и объяснений. Спецификация: JSR 310.
Где получить классы java.time?
ThreeTen-Extra Проект расширяет java.time с дополнительными классами. Этот проект является доказательством возможных будущих дополнений к java.time. Здесь вы можете найти полезные классы, такие как Interval
, YearWeek
, YearQuarter
и more.
Требуется локализованный недельный день. Расскажите больше о том, что вы действительно хотите сделать. Что вы подразумеваете под * хотите установить SUNDAY на «0», MONDAY - «1» *? Вы используете Java Time? Joda? – Tunaki
Как насчет 'DayOfWeek.SUNDAY.getValue()% 7'? –
@Tunaki - Как вы сказали, я хочу провести локализованную неделю, указав «новые» значения для недельных дней. Для меня важно, чтобы значение SUNDAY было «0», а не «7». это послужит мне позже для некоторой инфраструктуры, которую я пишу. Я хочу, чтобы моя функция получала перечисление DayOfWeek, а не определяла значения новых дней. – nimrod