fix: missing holiday in 2011

close #145

Co-authored-by: CoderX <chinabluesky335@gmail.com>
This commit is contained in:
NateScarlet 2022-02-26 16:44:36 +08:00
parent 50174151fa
commit 853f1bcabc
No known key found for this signature in database
GPG Key ID: 5C242793B070309C
4 changed files with 44 additions and 9 deletions

View File

@ -30,16 +30,9 @@ END:VEVENT
BEGIN:VEVENT BEGIN:VEVENT
SUMMARY:春节假期 SUMMARY:春节假期
DTSTART;VALUE=DATE:20110202 DTSTART;VALUE=DATE:20110202
DTEND;VALUE=DATE:20110203
DTSTAMP;VALUE=DATE:20110202
UID:2011-02-02/2011-02-03/NateScarlet/holiday-cn
END:VEVENT
BEGIN:VEVENT
SUMMARY:春节假期
DTSTART;VALUE=DATE:20110208
DTEND;VALUE=DATE:20110209 DTEND;VALUE=DATE:20110209
DTSTAMP;VALUE=DATE:20110208 DTSTAMP;VALUE=DATE:20110202
UID:2011-02-08/2011-02-09/NateScarlet/holiday-cn UID:2011-02-02/2011-02-09/NateScarlet/holiday-cn
END:VEVENT END:VEVENT
BEGIN:VEVENT BEGIN:VEVENT
SUMMARY:上班(补春节假期) SUMMARY:上班(补春节假期)

View File

@ -31,6 +31,31 @@
"date": "2011-02-02", "date": "2011-02-02",
"isOffDay": true "isOffDay": true
}, },
{
"name": "春节",
"date": "2011-02-03",
"isOffDay": true
},
{
"name": "春节",
"date": "2011-02-04",
"isOffDay": true
},
{
"name": "春节",
"date": "2011-02-05",
"isOffDay": true
},
{
"name": "春节",
"date": "2011-02-06",
"isOffDay": true
},
{
"name": "春节",
"date": "2011-02-07",
"isOffDay": true
},
{ {
"name": "春节", "name": "春节",
"date": "2011-02-08", "date": "2011-02-08",

View File

@ -281,6 +281,7 @@ class SentenceParser:
yield self.parent.get_date(year=groups[0], month=groups[1], day=groups[2]) yield self.parent.get_date(year=groups[0], month=groups[1], day=groups[2])
def _extract_dates_2(self, value: str) -> Iterator[date]: def _extract_dates_2(self, value: str) -> Iterator[date]:
value = re.sub(r".+?", "", value)
match = re.findall( match = re.findall(
r"(?:(\d+)年)?(?:(\d+)月)?(\d+)日(?:至|-|—)(?:(\d+)年)?(?:(\d+)月)?(\d+)日", value r"(?:(\d+)年)?(?:(\d+)月)?(\d+)日(?:至|-|—)(?:(\d+)年)?(?:(\d+)月)?(\d+)日", value
) )
@ -293,6 +294,7 @@ class SentenceParser:
yield start + timedelta(days=i) yield start + timedelta(days=i)
def _extract_dates_3(self, value: str) -> Iterator[date]: def _extract_dates_3(self, value: str) -> Iterator[date]:
value = re.sub(r".+?", "", value)
match = re.findall( match = re.findall(
r"(?:(\d+)年)?(?:(\d+)月)?(\d+)日(?:[^]+)?" r"(?:(\d+)年)?(?:(\d+)月)?(\d+)日(?:[^]+)?"
r"(?:、(?:(\d+)年)?(?:(\d+)月)?(\d+)日(?:[^]+)?)+", r"(?:、(?:(\d+)年)?(?:(\d+)月)?(\d+)日(?:[^]+)?)+",

View File

@ -356,6 +356,21 @@
{ "date": "2013-10-12", "isOffDay": false } { "date": "2013-10-12", "isOffDay": false }
] ]
}, },
{
"year": 2011,
"description": "2月2日农历除夕至8日放假调休共7天。1月30日星期日、2月12日星期六上班。",
"expected": [
{ "date": "2011-02-02", "isOffDay": true },
{ "date": "2011-02-03", "isOffDay": true },
{ "date": "2011-02-04", "isOffDay": true },
{ "date": "2011-02-05", "isOffDay": true },
{ "date": "2011-02-06", "isOffDay": true },
{ "date": "2011-02-07", "isOffDay": true },
{ "date": "2011-02-08", "isOffDay": true },
{ "date": "2011-01-30", "isOffDay": false },
{ "date": "2011-02-12", "isOffDay": false }
]
},
{ {
"year": 2008, "year": 2008,
"description": "2007年12月30日—2008年1月1日放假共3天。其中1月1日星期二为法定节假日12月30日星期日为公休日12月29日星期六公休日调至12月31日星期一12月29日星期六上班。", "description": "2007年12月30日—2008年1月1日放假共3天。其中1月1日星期二为法定节假日12月30日星期日为公休日12月29日星期六公休日调至12月31日星期一12月29日星期六上班。",