Parcourir la Source

Parse plain complete dates

Lucas Stadler 9 ans auparavant
Parent
commit
c24d7ccc84
2 fichiers modifiés avec 13 ajouts et 1 suppressions
  1. 12 0
      go/remind/remind.go
  2. 1 1
      go/remind/remind_test.go

+ 12 - 0
go/remind/remind.go

@ -34,6 +34,11 @@ func main() {
34 34
	}
35 35
}
36 36
37
var timeLayouts = []string{
38
	time.RFC3339,
39
	"2006-01-02",
40
}
41
37 42
func parseTime(s string) (time.Time, error) {
38 43
	now := time.Now().Round(time.Second)
39 44
	return parseTimeRelative(s, now)
@ -123,6 +128,13 @@ func parseTimeRelative(s string, now time.Time) (time.Time, error) {
123 128
		return t.Add(h), nil
124 129
	}
125 130
131
	for _, layout := range timeLayouts {
132
		t, err := time.Parse(layout, s)
133
		if err == nil {
134
			return t, nil
135
		}
136
	}
137
126 138
	return t, fmt.Errorf("unknown date spec '%s' (unexpected)", s)
127 139
}
128 140

+ 1 - 1
go/remind/remind_test.go

@ -22,7 +22,7 @@ func TestParse(t *testing.T) {
22 22
		{"next month", now.AddDate(0, 1, 0)},
23 23
		{"in two weeks", now.AddDate(0, 0, 2*7)},
24 24
		{"in 3 weeks", now.AddDate(0, 0, 3*7)},
25
		//"2016-09-28",
25
		{"2016-09-28", time.Date(2016, 9, 28, 0, 0, 0, 0, time.UTC)},
26 26
		{"3pm", truncateHours(now).Add(15 * time.Hour)},
27 27
		{"3 pm", truncateHours(now).Add(15 * time.Hour)},
28 28
		{"in 4 days at 10 pm", truncateHours(now).AddDate(0, 0, 4).Add(22 * time.Hour)},