如何创建 30 分钟的时间段.. 我从后端获取开始日期和结束日期

时间:2021-05-25 11:39:15

标签: flutter dart

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”

请帮忙..

1 个答案:

答案 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 工作会怎样?)您可能需要使用正确的数据类型而不是整数和字符串连接。