gorhill / cronexpr

Cron expression parser in Go language (golang)
683 stars 168 forks source link

Day-of-week parse support for MON-SUN (or `1-7`) #27

Open stayclassychicago opened 7 years ago

stayclassychicago commented 7 years ago

cronexpr.Parse() correctly parses dow (day-of-week) when written as 0-6 or SUN-SAT – but does NOT correctly parse when written as MON-SUN or 1-7

We can see that 0 and 7 both resolve to Sunday, so it should be possible to write expressions as either 0-6 OR 1-7 and have the same result. However- the 1-7 day-of-week does not parse.

Here is an example / reproduction scenario

package main

import (
    "fmt"
    "time"

    "github.com/gorhill/cronexpr"
)

func main() {
    t := time.Date(2017, time.July, 18, 13, 47, 0, 0, time.UTC)

    for _, dow := range []string{"MON-SUN", "SUN-SAT", "0-6", "1-7"} {
        times := cronexpr.MustParse(fmt.Sprintf("* *  * * %s", dow)).NextN(t, 8)

        if len(times) == 0 {
            fmt.Printf("Could NOT parse [%s]\n", dow)
        } else {
            for i := range times {
                fmt.Println(times[i].Format(time.RFC1123))
            }
        }

    }

}