ТЛ; др
org.threeten.extra.YearWeek.of( 2018 , 1 ).is53WeekYear()
... или ...
org.threeten.extra.YearWeek.of( 2018 , 1 ).lengthOfYear()
java.time
Проект Joda-Time теперь находится в режиме обслуживания , и команда рекомендует перейти на классы java.time .
Неделя
Какое у вас определение недели? Неделя № 1 содержит 1 января? Или неделя № 1 содержит определенный день недели, например, воскресенье? Является ли неделя № 1 первой неделей, содержащей только дни нового года? Другое определение?
ISO 8601
Если ваше определение соответствует стандарту ISO 8601 , это означает, что неделя № 1 содержит первый четверг календарного года, а понедельник начинается каждую неделю. Таким образом, в году 52 или 53 недели. И последние несколько дней или первые несколько дней календаря могут появиться в предыдущем / следующем году на основе недели.
ThreeTen-Extra YearWeek
класс
Для стандартных недель добавьте библиотеку ThreeTen-Extra
в ваш проект. Эти классы расширяют функциональность классов java.time, встроенных в Java 8 и более поздние версии.
Получите неделю из желаемого номера года на основе недели.
YearWeek yw = YearWeek.of( 2018 , 1 ) ;
Возможно, вам нужен текущий год-неделя.
LocalDate ld = LocalDate.now( ZoneId.of( "America/Montreal" ) ) ;
YearWeek yw = YearWeek.from( ld ) ;
Получите количество недель в этом году, 52 или 53.
int weeksCount = yw.lengthOfYear() ;
Или просто спросите, есть ли в этом году 53 недели.
boolean has53 = yw.is53WeekYear() ;
О java.time
Платформа java.time встроена в Java 8 и более поздние версии. Эти классы вытесняют старые классные устаревшие классы даты и времени, такие как java.util.Date
, Calendar
и & SimpleDateFormat
.
Проект Joda-Time , который теперь находится в режиме обслуживания , рекомендует перейти на классы java.time .
Чтобы узнать больше, см. Oracle Tutorial . И поиск переполнения стека для многих примеров и объяснений. Спецификация JSR 310 .
Где получить классы java.time?
Проект ThreeTen-Extra расширяет java.time дополнительными классами. Этот проект является полигоном для возможных будущих дополнений к java.time. Здесь вы можете найти несколько полезных классов, таких как Interval
, YearWeek
, YearQuarter
и more .