Период между LocalDates дает неверные результатыJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Период между LocalDates дает неверные результаты

Сообщение Anonymous »

Я вижу, что java.time.Period с java.time.LocalDates работает в основном так, как хотелось бы, и я могу использовать его для получения продолжительности между двумя датами в годах, месяцах и днях, но я нашел пример, который не работает (не так, как я ожидал), например:

Код: Выделить всё

val test1 = LocalDate.of(2023, 1, 31)
val test2 = LocalDate.of(2023, 1, 28)
val testToday = LocalDate.of(2023, 3, 9)

val period1 = Period.between(test1, testToday)
val period2 = Period.between(test2, testToday)

L.d { "test1 = $test1 | test2 = $test2 | today = $testToday" }
L.d { "period1 = $period1 | period2 = $period2" }
Вывод следующий:

Код: Выделить всё

period1 = P1M9D | period2 = P1M9D
test1 = 2023-01-31 | test2 = 2023-01-28 | today = 2023-03-09
Проблема
Приведенное выше решение говорит мне следующее:
  • Продолжительность с 31 января 2023 г. по 09 марта 2023 г. => 1 месяц и 9 дней (P1M9D)
  • Продолжительность с 28 января 2023 г. по 2023-03-09 => 1 месяц и 9 дней (P1M9D)
=> но это неправильно, второй должен показывать продолжительность на 3 дня больше... Есть ли этому объяснение?

Подробнее здесь: https://stackoverflow.com/questions/756 ... ng-results
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»