Округлите время до отметки 30 или 60 минут (половина текущего часа или следующий час) на языке Java.JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Округлите время до отметки 30 или 60 минут (половина текущего часа или следующий час) на языке Java.

Сообщение Anonymous »

У меня возникла необычная проблема с округлением. Если время «7:35 утра», время должно быть «8:00 утра» — округленное до ближайших 30 минут вперед. Если время «7:20», время должно быть «7:30».
Как это сделать?
У меня есть это, но оно округляется вперед и назад. Мне это нужно только для того, чтобы идти вперед:
private DateTime roundDate(final DateTime dateTime, final int minutes) {
if (minutes < 1 || 60 % minutes != 0)
{
throw new IllegalArgumentException("minutes must be a factor of 60");
}

final DateTime hour = dateTime.hourOfDay().roundFloorCopy();
final long millisSinceHour = new Duration(hour, dateTime).getMillis();
final int roundedMinutes = ((int) Math.round(millisSinceHour / 60000.0 / minutes)) * minutes;

System.out.println(hour.plusMinutes(roundedMinutes));

return hour.plusMinutes(roundedMinutes);
}


Подробнее здесь: https://stackoverflow.com/questions/265 ... -or-at-the
Ответить

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

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

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

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

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