Skip to content

Commit

Permalink
Bugfix: Fix wrong date calculation for day of the week
Browse files Browse the repository at this point in the history
  • Loading branch information
fetinin committed Nov 23, 2022
1 parent 2558f30 commit f24e7a1
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 11 deletions.
23 changes: 12 additions & 11 deletions main.go
Original file line number Diff line number Diff line change
Expand Up @@ -107,28 +107,29 @@ func convertToDay(input string) (time.Time, error) {
return todayStart.Add(-24 * time.Hour), nil
}

var day time.Weekday
var weekdayWant time.Weekday
switch input {
case "monday":
day = time.Monday
weekdayWant = time.Monday
case "tuesday":
day = time.Tuesday
weekdayWant = time.Tuesday
case "wednesday":
day = time.Wednesday
weekdayWant = time.Wednesday
case "thursday":
day = time.Thursday
weekdayWant = time.Thursday
case "friday":
day = time.Friday
weekdayWant = time.Friday
case "saturday":
day = time.Saturday
weekdayWant = time.Saturday
case "sunday":
day = time.Sunday
weekdayWant = time.Weekday(7) // week ends with sunday
default:
day = -1 // NoneDay
weekdayWant = -1 // NoneDay
}

if day != -1 {
return todayStart.Add(time.Duration(time.Now().Weekday()-day) * 24 * time.Hour), nil
if weekdayWant != -1 {
weekdayNow := time.Now().Weekday()
return todayStart.Add(time.Duration(weekdayWant-weekdayNow) * 24 * time.Hour), nil
}

if d, err := strconv.Atoi(input); err == nil {
Expand Down
6 changes: 6 additions & 0 deletions main_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,12 @@ func Test_convertToDay(t *testing.T) {
{name: "today", input: "today", want: time.Now()},
{name: "yesterday", input: "yesterday", want: time.Now().Add(-24 * time.Hour)},
{name: "monday", input: "monday", want: time.Now().Add(daysDiff(time.Monday, time.Now().Weekday()))},
{name: "tuesday", input: "tuesday", want: time.Now().Add(daysDiff(time.Tuesday, time.Now().Weekday()))},
{name: "wednesday", input: "wednesday", want: time.Now().Add(daysDiff(time.Wednesday, time.Now().Weekday()))},
{name: "thursday", input: "thursday", want: time.Now().Add(daysDiff(time.Thursday, time.Now().Weekday()))},
{name: "friday", input: "friday", want: time.Now().Add(daysDiff(time.Friday, time.Now().Weekday()))},
{name: "saturday", input: "saturday", want: time.Now().Add(daysDiff(time.Saturday, time.Now().Weekday()))},
{name: "sunday", input: "sunday", want: time.Now().Add(daysDiff(time.Weekday(7), time.Now().Weekday()))},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
Expand Down

0 comments on commit f24e7a1

Please sign in to comment.