public static LocalTime roundDown(LocalTime time, int toMinuteInterval) {
int slotNo = (int)(time.getMillisOfDay() / ((double)toMinuteInterval * 60 * 1000));
int slotsPerHour = 60 / toMinuteInterval;
int h = slotNo / slotsPerHour;
int m = toMinuteInterval * (slotNo % slotsPerHour);
return new LocalTime(h, m);
}
# 1 楼答案
仅当toMinuteInterval是60倍(例如10、15、30等)时有效
# 2 楼答案
谢谢你的回复。决定走这条路,不介绍JodaTime。在这个答案中How to round time to the nearest quarter hour in java?
# 3 楼答案
这个怎么样
(由于有一个
withMinuteOfHour
方法,它可能看起来有点过于复杂了,但请记住,我们可能会将其调整到60,而withMinuteOfHour(60)
是无效的。)