diff --git a/internal/task/date.go b/internal/task/date.go index d54a8b0..4dc0da9 100644 --- a/internal/task/date.go +++ b/internal/task/date.go @@ -69,30 +69,24 @@ func NewDateFromString(date string) Date { return Date{} } + if date == "today" || date == "vandaag" { + return Today + } + + if date == "tomorrow" || date == "morgen" { + return Today.AddDays(1) + } + t, err := time.Parse("2006-01-02", fmt.Sprintf("%.10s", date)) if err == nil { return Date{t: t} } weekday := Today.Weekday() - var newWeekday time.Weekday - switch { - case date == "monday" || date == "maandag": - newWeekday = time.Monday - case date == "tuesday" || date == "dinsdag": - newWeekday = time.Tuesday - case date == "wednesday" || date == "woensdag": - newWeekday = time.Wednesday - case date == "thursday" || date == "donderdag": - newWeekday = time.Thursday - case date == "friday" || date == "vrijdag": - newWeekday = time.Friday - case date == "saturday" || date == "zaterdag": - newWeekday = time.Saturday - case date == "sunday" || date == "zondag": - newWeekday = time.Sunday + newWeekday, ok := ParseWeekday(date) + if !ok { + return Date{} } - daysToAdd := int(newWeekday) - int(weekday) if daysToAdd <= 0 { daysToAdd += 7 diff --git a/internal/task/date_test.go b/internal/task/date_test.go index 8ee8804..94555da 100644 --- a/internal/task/date_test.go +++ b/internal/task/date_test.go @@ -48,6 +48,26 @@ func TestNewDateFromString(t *testing.T) { input: "maandag", exp: task.NewDate(2021, 2, 1), }, + { + name: "today english", + input: "today", + exp: task.NewDate(2021, 1, 30), + }, + { + name: "today dutch", + input: "vandaag", + exp: task.NewDate(2021, 1, 30), + }, + { + name: "tomorrow english", + input: "tomorrow", + exp: task.NewDate(2021, 1, 31), + }, + { + name: "tomorrow dutch", + input: "morgen", + exp: task.NewDate(2021, 1, 31), + }, } { t.Run(tc.name, func(t *testing.T) { test.Equals(t, tc.exp, task.NewDateFromString(tc.input))