Pārlūkot izejas kodu

Parse plain complete dates

Lucas Stadler 9 gadi atpakaļ
vecāks
revīzija
c24d7ccc84
2 mainītis faili ar 13 papildinājumiem un 1 dzēšanām
  1. 12 0
      go/remind/remind.go
  2. 1 1
      go/remind/remind_test.go

+ 12 - 0
go/remind/remind.go

34
	}
34
	}
35
}
35
}
36
36
37
var timeLayouts = []string{
38
	time.RFC3339,
39
	"2006-01-02",
40
}
41
37
func parseTime(s string) (time.Time, error) {
42
func parseTime(s string) (time.Time, error) {
38
	now := time.Now().Round(time.Second)
43
	now := time.Now().Round(time.Second)
39
	return parseTimeRelative(s, now)
44
	return parseTimeRelative(s, now)
123
		return t.Add(h), nil
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
	return t, fmt.Errorf("unknown date spec '%s' (unexpected)", s)
138
	return t, fmt.Errorf("unknown date spec '%s' (unexpected)", s)
127
}
139
}
128
140

+ 1 - 1
go/remind/remind_test.go

22
		{"next month", now.AddDate(0, 1, 0)},
22
		{"next month", now.AddDate(0, 1, 0)},
23
		{"in two weeks", now.AddDate(0, 0, 2*7)},
23
		{"in two weeks", now.AddDate(0, 0, 2*7)},
24
		{"in 3 weeks", now.AddDate(0, 0, 3*7)},
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
		{"3pm", truncateHours(now).Add(15 * time.Hour)},
26
		{"3pm", truncateHours(now).Add(15 * time.Hour)},
27
		{"3 pm", truncateHours(now).Add(15 * time.Hour)},
27
		{"3 pm", truncateHours(now).Add(15 * time.Hour)},
28
		{"in 4 days at 10 pm", truncateHours(now).AddDate(0, 0, 4).Add(22 * time.Hour)},
28
		{"in 4 days at 10 pm", truncateHours(now).AddDate(0, 0, 4).Add(22 * time.Hour)},