Округлите время до отметки 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

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