Java.время
Класс LocalDate
представляет значение без времени суток и без часового пояса.
Укажите желаемую дату в качестве даты привязки, даты, от которой мы отсчитываем недели. Вам нужны порядковые номера недель, поэтому добавьте единицу, чтобы избежать недели с нулевым номером.
ChronoUnit
enum предлагает between
метод расчета прошедшего времени.
LocalDate anchor = LocalDate.of( 2015 , Month.FEBRUARY , 2 );
LocalDate feb5 = LocalDate.of( 2015 , Month.FEBRUARY , 5 );
LocalDate feb8 = LocalDate.of( 2015 , Month.FEBRUARY , 8 );
LocalDate feb9 = LocalDate.of( 2015 , Month.FEBRUARY , 9 );
System.out.println( feb5 + " is in week # " + ( ChronoUnit.WEEKS.between( anchor , feb5 ) + 1 ) );
System.out.println( feb8 + " is in week # " + ( ChronoUnit.WEEKS.between( anchor , feb8 ) + 1 ) );
System.out.println( feb9 + " is in week # " + ( ChronoUnit.WEEKS.between( anchor , feb9 ) + 1 ) );
См. этот выполнение кода в реальном времени на IdeOne.com.
2015-02-05 находится на неделе № 1
2015-02-08 находится на неделе № 1
2015-02-09 на второй неделе
О java.time
Платформа java.time встроен в Java 8 и более поздние версии. Эти классы заменяют проблемные старые устаревшие классы даты и времени, такие как java.util.Date
, Calendar
и SimpleDateFormat
.
Проект Joda-Time, теперь в режим обслуживания, советует перейти на java.time.
Чтобы узнать больше, см. учебник по Oracle. И поищите множество примеров и пояснений в Stack Overflow. Спецификация: JSR 310.
Где получить классы java.time?
Проект ThreeTen-Extra расширяет java.time дополнительными классами. . Этот проект является испытательным полигоном для возможных дополнений к java.time в будущем. Здесь вы можете найти несколько полезных классов, таких как Interval
a>, YearWeek
, YearQuarter
и подробнее.
person
Basil Bourque
schedule
07.12.2017