List<WorkingHourModel> workingHours = response['hours'];
int startTime = int.parse(workingHours[0].startTime.split(':')[0]);
int endTime = int.parse(workingHours[0].endTime.split(':')[0]);
int hoursLeft = endTime - startTime + 1;
List<String> hours =
List.generate(hoursLeft, (i) => '${(endTime - i)}:00').reversed
.toList();
print('Hours-------- $hours');
return {
'success': true,
'hours': hours,
};
}
//这将给出时间段为“1:00”、“2:00”、“3:00”、“4:00” //开始时间为1:00,结束时间为4:00。
但我需要 30 分钟的破损时间,比如, “1:00”、“1:30”、“2:00”、“2:30”、“3:00”、“3:30”、“4:00”
请帮忙..
答案 0 :(得分:0)
这应该会生成您想要的列表:
void main(List<String> args) {
// lets assume 9 to 5
int startTime = 9;
int endTime = 17;
int hoursLeft = endTime - startTime + 1;
final hours = List.generate(hoursLeft * 2, (i) => '${endTime - (i/2).truncate()}:${i%2 == 1 ? '00' : '30'}').reversed.toList();
print('Hours-------- $hours');
}
<块引用>
营业时间-------- [9:00, 9:30, 10:00, 10:30, 11:00, 11:30, 12:00, 12:30, 13:00, 13 :30, 14:00, 14:30, 15:00, 15:30, 16:00, 16:30, 17:00, 17:30]
一般来说,如果您有更复杂的计算(如果有人在夜班 18:00 到 05:00 工作会怎样?)您可能需要使用正确的数据类型而不是整数和字符串连接。