Skip to content

Commit 559d295

Browse files
authored
Merge pull request #53 from ijt/issue/52/december-40
Issue/52/december 40
2 parents e534ef9 + 90f021d commit 559d295

File tree

2 files changed

+22
-0
lines changed

2 files changed

+22
-0
lines changed

v2/parse.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -340,6 +340,14 @@ func parseDateWord(d *date, w string) (string, bool) {
340340
}
341341

342342
func parseDayOfMonth(w string) (int, bool) {
343+
dom, ok := parseDayOfMonthNoCheck(w)
344+
if !ok || !okDayOfMonth(dom) {
345+
return 0, false
346+
}
347+
return dom, ok
348+
}
349+
350+
func parseDayOfMonthNoCheck(w string) (int, bool) {
343351
i, ok := strToInt[w]
344352
if ok {
345353
return i, true
@@ -355,6 +363,10 @@ func parseDayOfMonth(w string) (int, bool) {
355363
return 0, false
356364
}
357365

366+
func okDayOfMonth(dom int) bool {
367+
return 1 <= dom && dom <= 31
368+
}
369+
358370
func inferRange(d date, now time.Time, dir Direction, src string) (Range, bool) {
359371
if d.year == 0 && d.month == 0 {
360372
return Range{}, false

v2/parse_test.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -235,6 +235,16 @@ func Test_parseImplicitRange(t *testing.T) {
235235
wantR: truncateDay(time.Date(2023, 3, 4, 0, 0, 0, 0, time.UTC)),
236236
wantParsed: "mar 4th",
237237
},
238+
{
239+
name: "december 40",
240+
args: args{
241+
s: "december 40",
242+
now: time.Date(2022, 1, 1, 0, 0, 0, 0, time.UTC),
243+
dir: Future,
244+
},
245+
wantR: truncateMonth(time.Date(2022, 12, 1, 0, 0, 0, 0, time.UTC)),
246+
wantParsed: "december",
247+
},
238248
}
239249
for _, tt := range tests {
240250
t.Run(tt.name, func(t *testing.T) {

0 commit comments

Comments
 (0)