I have the following array example
<code>userShifts = [
{ userId: 1, startTime: "05:00", endTime: "13:00" },
{ userId: 2, startTime: "05:00", endTime: "13:00" },
{ userId: 3, startTime: "05:00", endTime: "13:00" },
{ userId: 4, startTime: "13:00", endTime: "21:00" },
{ userId: 5, startTime: "13:00", endTime: "21:00" },
{ userId: 6, startTime: "13:00", endTime: "21:00" },
{ userId: 7, startTime: "21:00", endTime: "00:00" },
{ userId: 8, startTime: "21:00", endTime: "00:00" },
{ userId: 9, startTime: "21:00", endTime: "00:00" },
{ userId: 10, startTime: "07:00", endTime: "15:00" },
{ userId: 11, startTime: "07:00", endTime: "15:00" },
{ userId: 12, startTime: "03:00", endTime: "11:00" },
];
</code>
<code>userShifts = [
{ userId: 1, startTime: "05:00", endTime: "13:00" },
{ userId: 2, startTime: "05:00", endTime: "13:00" },
{ userId: 3, startTime: "05:00", endTime: "13:00" },
{ userId: 4, startTime: "13:00", endTime: "21:00" },
{ userId: 5, startTime: "13:00", endTime: "21:00" },
{ userId: 6, startTime: "13:00", endTime: "21:00" },
{ userId: 7, startTime: "21:00", endTime: "00:00" },
{ userId: 8, startTime: "21:00", endTime: "00:00" },
{ userId: 9, startTime: "21:00", endTime: "00:00" },
{ userId: 10, startTime: "07:00", endTime: "15:00" },
{ userId: 11, startTime: "07:00", endTime: "15:00" },
{ userId: 12, startTime: "03:00", endTime: "11:00" },
];
</code>
userShifts = [
{ userId: 1, startTime: "05:00", endTime: "13:00" },
{ userId: 2, startTime: "05:00", endTime: "13:00" },
{ userId: 3, startTime: "05:00", endTime: "13:00" },
{ userId: 4, startTime: "13:00", endTime: "21:00" },
{ userId: 5, startTime: "13:00", endTime: "21:00" },
{ userId: 6, startTime: "13:00", endTime: "21:00" },
{ userId: 7, startTime: "21:00", endTime: "00:00" },
{ userId: 8, startTime: "21:00", endTime: "00:00" },
{ userId: 9, startTime: "21:00", endTime: "00:00" },
{ userId: 10, startTime: "07:00", endTime: "15:00" },
{ userId: 11, startTime: "07:00", endTime: "15:00" },
{ userId: 12, startTime: "03:00", endTime: "11:00" },
];
I need a function that will create a shift blokcs of 24 hours so from 00:to
00:00 and the next user start time cannot be before the end time fo the previous one so the output of the above array would be
<code>userShiftBlocks = [
[
{ userId: 1, startTime: "05:00", endTime: "13:00" },
{ userId: 4, startTime: "13:00", endTime: "21:00" },
{ userId: 7, startTime: "21:00", endTime: "00:00" }
],
[
{ userId: 2, startTime: "05:00", endTime: "13:00" },
{ userId: 5, startTime: "13:00", endTime: "21:00" },
{ userId: 8, startTime: "21:00", endTime: "00:00" }
],
[
{ userId: 3, startTime: "05:00", endTime: "13:00" },
{ userId: 6, startTime: "13:00", endTime: "21:00" },
{ userId: 9, startTime: "21:00", endTime: "00:00" }
],
[
{ userId: 10, startTime: "07:00", endTime: "15:00" }
],
[
{ userId: 11, startTime: "07:00", endTime: "15:00" }
],
[
{ userId: 12, startTime: "03:00", endTime: "11:00" }
]
];
</code>
<code>userShiftBlocks = [
[
{ userId: 1, startTime: "05:00", endTime: "13:00" },
{ userId: 4, startTime: "13:00", endTime: "21:00" },
{ userId: 7, startTime: "21:00", endTime: "00:00" }
],
[
{ userId: 2, startTime: "05:00", endTime: "13:00" },
{ userId: 5, startTime: "13:00", endTime: "21:00" },
{ userId: 8, startTime: "21:00", endTime: "00:00" }
],
[
{ userId: 3, startTime: "05:00", endTime: "13:00" },
{ userId: 6, startTime: "13:00", endTime: "21:00" },
{ userId: 9, startTime: "21:00", endTime: "00:00" }
],
[
{ userId: 10, startTime: "07:00", endTime: "15:00" }
],
[
{ userId: 11, startTime: "07:00", endTime: "15:00" }
],
[
{ userId: 12, startTime: "03:00", endTime: "11:00" }
]
];
</code>
userShiftBlocks = [
[
{ userId: 1, startTime: "05:00", endTime: "13:00" },
{ userId: 4, startTime: "13:00", endTime: "21:00" },
{ userId: 7, startTime: "21:00", endTime: "00:00" }
],
[
{ userId: 2, startTime: "05:00", endTime: "13:00" },
{ userId: 5, startTime: "13:00", endTime: "21:00" },
{ userId: 8, startTime: "21:00", endTime: "00:00" }
],
[
{ userId: 3, startTime: "05:00", endTime: "13:00" },
{ userId: 6, startTime: "13:00", endTime: "21:00" },
{ userId: 9, startTime: "21:00", endTime: "00:00" }
],
[
{ userId: 10, startTime: "07:00", endTime: "15:00" }
],
[
{ userId: 11, startTime: "07:00", endTime: "15:00" }
],
[
{ userId: 12, startTime: "03:00", endTime: "11:00" }
]
];
So for each block a 24 hour shift period , the start time of the next user is after or the same as the previous user end time. So an array like below where not everythign matched start end exactly should also work
<code>userShifts = [
{ userId: 1, startTime: "05:00", endTime: "13:00" },
{ userId: 2, startTime: "05:00", endTime: "13:30" },
{ userId: 3, startTime: "05:00", endTime: "13:00" },
{ userId: 4, startTime: "13:00", endTime: "21:00" },
{ userId: 5, startTime: "14:30", endTime: "21:00" },
{ userId: 6, startTime: "13:00", endTime: "21:00" },
{ userId: 7, startTime: "21:30", endTime: "00:00" },
{ userId: 8, startTime: "21:00", endTime: "00:00" },
{ userId: 9, startTime: "21:00", endTime: "00:00" },
{ userId: 10, startTime: "07:00", endTime: "15:00" },
{ userId: 11, startTime: "07:00", endTime: "15:00" },
{ userId: 12, startTime: "03:00", endTime: "11:00" },
];
</code>
<code>userShifts = [
{ userId: 1, startTime: "05:00", endTime: "13:00" },
{ userId: 2, startTime: "05:00", endTime: "13:30" },
{ userId: 3, startTime: "05:00", endTime: "13:00" },
{ userId: 4, startTime: "13:00", endTime: "21:00" },
{ userId: 5, startTime: "14:30", endTime: "21:00" },
{ userId: 6, startTime: "13:00", endTime: "21:00" },
{ userId: 7, startTime: "21:30", endTime: "00:00" },
{ userId: 8, startTime: "21:00", endTime: "00:00" },
{ userId: 9, startTime: "21:00", endTime: "00:00" },
{ userId: 10, startTime: "07:00", endTime: "15:00" },
{ userId: 11, startTime: "07:00", endTime: "15:00" },
{ userId: 12, startTime: "03:00", endTime: "11:00" },
];
</code>
userShifts = [
{ userId: 1, startTime: "05:00", endTime: "13:00" },
{ userId: 2, startTime: "05:00", endTime: "13:30" },
{ userId: 3, startTime: "05:00", endTime: "13:00" },
{ userId: 4, startTime: "13:00", endTime: "21:00" },
{ userId: 5, startTime: "14:30", endTime: "21:00" },
{ userId: 6, startTime: "13:00", endTime: "21:00" },
{ userId: 7, startTime: "21:30", endTime: "00:00" },
{ userId: 8, startTime: "21:00", endTime: "00:00" },
{ userId: 9, startTime: "21:00", endTime: "00:00" },
{ userId: 10, startTime: "07:00", endTime: "15:00" },
{ userId: 11, startTime: "07:00", endTime: "15:00" },
{ userId: 12, startTime: "03:00", endTime: "11:00" },
];
I am not gettig the results I want yet and chatgpt completely looses the plotso help is appreciated
1