Crontab Parsing
Linux Crontab command is a powerful utility that is used for scheduling and automating tasks in Unix-like operating systems.
In this mission your task is to parse a crontab timing expression (crontab format MIN HOUR DOM MON DOW), return a sorted ascending list of next 3 execution datetimes based on a provided current datetime (ISO format YYYY-MM-DDTHH:MM).
Your script must support all standard crontab expressions:
- Single numbers: 5, 10, 15;
- Ranges: 1-5;
- Steps: */2, 1-10/2;
- Lists: 1,3,5;
- Special character: *;
- Special keywords: @yearly (@annually), @monthly, @weekly, @daily (@midnight), @hourly.
Input: Two strings (string).
Output: Array of three strings (string).
Examples:
assert.deepStrictEqual(nextCrontabExec("* * * * *", "2025-03-03T14:30"), [
"2025-03-03T14:31",
"2025-03-03T14:32",
"2025-03-03T14:33",
]);
assert.deepStrictEqual(nextCrontabExec("*/15 * * * *", "2025-03-03T14:30"), [
"2025-03-03T14:45",
"2025-03-03T15:00",
"2025-03-03T15:15",
]);
assert.deepStrictEqual(
nextCrontabExec("5,10,15,20 * * * *", "2025-03-03T14:07"),
["2025-03-03T14:10", "2025-03-03T14:15", "2025-03-03T14:20"],
);
assert.deepStrictEqual(nextCrontabExec("10-20 * * * *", "2025-03-03T14:05"), [
"2025-03-03T14:10",
"2025-03-03T14:11",
"2025-03-03T14:12",
]);