Время Java 8: перебор дневного LocalTime шагами периодаJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Время Java 8: перебор дневного LocalTime шагами периода

Сообщение Anonymous »

Начиная с полуночи, я хочу перебирать LocalTime шагами определенной длины до конца дня.

Например. если период составляет 8 часов 10 минут, мне нужно время: 0:00, 8:10, 16:20 (а не 24:30, так как это следующий день)

У меня есть следующий рабочий код для периодов меньше одного дня. Есть ли лучшая (особенно более читабельная) логика?

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

Duration period = ...;
for(LocalTime t = LocalTime.MIDNIGHT, p = LocalTime.MIDNIGHT;
t.isAfter(p) || t.equals(p) ; p = t, t = t.plus(period)){
// do something with t
}
Кроме того, приведенное выше не работает для периодов, кратных одному дню (бесконечный цикл), или, если больше одного дня, возвращает число, как если бы период был приведен к быть короче одного дня (например, 24 часа 10 минут ведут себя так же, как 10 минут), поэтому, если это можно исправить одновременно (без явных if), я тоже возьму это.

Подробнее здесь: https://stackoverflow.com/questions/278 ... riod-steps
Ответить

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

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

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

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

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