-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathlab.dart
43 lines (43 loc) · 1.08 KB
/
lab.dart
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
void main(List<String> args) {
List<Map<String, int>> schedule = [
{
"startHour": 8,
"startMin": 0,
"endHour": 9,
"endMin": 0,
},
{
"startHour": 9,
"startMin": 30,
"endHour": 10,
"endMin": 0,
},
{
"startHour": 11,
"startMin": 30,
"endHour": 13,
"endMin": 30,
},
{
"startHour": 15,
"startMin": 0,
"endHour": 17,
"endMin": 0,
}
];
List unRolled = schedule.fold([], (unRolling, timeslot) {
int startMinuteSum = timeslot["startHour"] * 60 + timeslot["startMin"] - 1;
int endMinuteSum = timeslot["endHour"] * 60 + timeslot["endMin"] + 1;
return unRolling +
[
[startMinuteSum ~/ 60, startMinuteSum % 60, 0],
[timeslot["startHour"], timeslot["startMin"], 1],
[timeslot["endHour"], timeslot["endMin"], 1],
[endMinuteSum ~/ 60, endMinuteSum % 60, 0],
];
});
unRolled.insert(0, [0, 0, 0]);
unRolled.add([23, 59, 0]);
print(schedule.take( schedule.length));
// print(List<num>.generate(5, (i) => (i)));
}