我将24小时工作分为48个时段。所以我像这样硬编码: (java code)
private static void createMap() {
timeSlotMap.put(0, "0:30");
timeSlotMap.put(1, "01:00");
timeSlotMap.put(2, "01:30");
timeSlotMap.put(3, "02:00");
timeSlotMap.put(4, "02:30");
...
...
timeSlotMap.put(45, "23:00");
timeSlotMap.put(46, "23:30");
timeSlotMap.put(47, "24:00");
}
有更好的方法吗?
由于
答案 0 :(得分:3)
使用LocalTime的另一种方式:
LocalTime time = LocalTime.MIDNIGHT;
int minutesToAdd = 30;
Map<Integer, String> times = new TreeMap<>();
for(int i = 1; i < 48; i++){
times.put(i - 1,time.plusMinutes(minutesToAdd * i).toString());
}
times.put(47, "24:00");
答案 1 :(得分:1)
当然,这就是循环的用途。使第一个参数成为循环索引,并从第一个参数构造第二个参数,例如,使用String.format函数:
private static void createMap() {
for (int i = 0; i < 48; i++) {
int t = (i + 1) * 30;
timeSlotMap.put(i, String.format("%02d:%02d", t / 60, t % 60));
}
}