A Cron Expression Parser is a tool designed to interpret and expand cron expressions, which are commonly used in Unix-like operating systems to schedule jobs or tasks to run at specific times.
A standard cron expression consists of five fields (excluding special strings), each representing a specific unit of time:
1. Minute (0 - 59): Specifies the exact minute when the task should run.
2. Hour (0 - 23): Specifies the hour of the day.
3. Day of Month (1 - 31): Specifies the day of the month.
4. Month (1 - 12): Specifies the month of the year.
5. Day of Week (0 - 6): Specifies the day of the week.
go run cmd/main.go "* * * * * /cmd/to/execute"
1. Install golang (version > go 1.20) if not installed.
2. Clone the git repo using the following command:
git clone https://github.com/code-dagger/cron-parser.git
or
git clone git@github.com:code-dagger/cron-parser.git
3. Navigate to the cloned directory.
4. Run the following command in the terminal:
> go run cmd/main.go "1 1 1-5 1 1 /cmd/to/execute"
You will get the following output:
minute 1
hour 1
day of month 1 2 3 4 5
month 1
day of week 1
command /cmd/to/execute
> go run cmd/main.go "*/15 0 1,15 * 1-5 /usr/bin/find"
minute 0 15 30 45
hour 0
day of month 1 15
month 1 2 3 4 5 6 7 8 9 10 11 12
day of week 1 2 3 4 5
command /usr/bin/find
> go run cmd/main.go "0 0,12 1 */2 * /usr/bin/find"
minute 0
hour 0 12
day of month 1
month 1 3 5 7 9 11
day of week 0 1 2 3 4 5 6
command /usr/bin/find
> go run cmd/main.go "0 4 1-20/4 * * /usr/bin/find"
minute 0
hour 4
day of month 1 5 9 13 17
month 1 2 3 4 5 6 7 8 9 10 11 12
day of week 0 1 2 3 4 5 6
command /usr/bin/find
> go run cmd/main.go "*/5 4,6,8 1-20/4 */2 6 /usr/bin/find"
minute 0 5 10 15 20 25 30 35 40 45 50 55
hour 4 6 8
day of month 1 5 9 13 17
month 1 3 5 7 9 11
day of week 6
command /usr/bin/find