Pdf.js: рендеринг файла PDF с использованием исходного файла base64 вместо URL

самый простой

Самый простой способ - использовать хорошо спроектированную выделенную библиотеку для работы с датой.

someInterval.overlaps( anotherInterval )

java.time & амп; ThreeTen-Extra

Лучшим в бизнесе является структура java.time , встроенная в Java 8 и более поздние версии. Добавьте к этому проект ThreeTen-Extra , который дополняет java.time дополнительными классами, в частности классом Interval , который нам нужен здесь.

Что касается тег language-agnostic в этом Вопросе, исходный код для обоих проектов доступен для использования на других языках (помните о своих лицензиях).

Interval

Класс org.threeten.extra.Interval удобен, но для него требуются моменты времени дат (java.time.Instant), а не только значения даты , Поэтому мы переходим к использованию первого момента дня в UTC для представления даты.

Instant start = Instant.parse( "2016-01-01T00:00:00Z" );
Instant stop = Instant.parse( "2016-02-01T00:00:00Z" );

Создайте Interval для представления этого промежутка времени.

Interval interval_A = Interval.of( start , stop );

Мы также можем определить Interval с начальным моментом плюс Duration .

Instant start_B = Instant.parse( "2016-01-03T00:00:00Z" );
Interval interval_B = Interval.of( start_B , Duration.of( 3 , ChronoUnit.DAYS ) );

Сравнение с тестом на перекрытия очень просто.

Boolean overlaps = interval_A.overlaps( interval_B );

Вы можете сравнить Interval с другим Interval или Instant :

Все они используют подход Half-Open для определения промежутка времени, в котором начало включено , а окончание - exclusive .

63
задан Rob W 27 March 2014 в 19:14
поделиться