LocalTime
从午夜开始,我想以一定的周期长度迭代s 到一天结束。
例如。如果时间段是 8hr10Minutes 我想要时间: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
}
此外,对于等于一天的倍数(无限循环)的时间段,上述操作失败,或者,如果大于一天,则返回数字,就好像时间段被强制转换为短于一天一样,(例如,24hr10min 的行为与 10Minutes 相同),所以如果可以同时修复(没有明确if
的 s)我也会接受它。