From 679f766a33fcfcb31d93f66ac0c5477a22f54789 Mon Sep 17 00:00:00 2001 From: NateScarlet Date: Sat, 9 Mar 2019 00:40:13 +0800 Subject: [PATCH] Setup update script and add past data --- .travis.yml | 13 + 2007.json | 158 +++++++ 2008.json | 183 ++++++++ 2009.json | 173 +++++++ 2010.json | 193 ++++++++ 2011.json | 148 ++++++ 2012.json | 178 ++++++++ 2013.json | 213 +++++++++ 2014.json | 143 ++++++ 2015.json | 143 ++++++ 2016.json | 7 + 2017.json | 153 +++++++ 2018.json | 153 +++++++ description_parsing_cases.json | 807 +++++++++------------------------ fetch_holidays.py | 45 +- update.py | 65 +++ 16 files changed, 2169 insertions(+), 606 deletions(-) create mode 100644 .travis.yml create mode 100644 2007.json create mode 100644 2008.json create mode 100644 2009.json create mode 100644 2010.json create mode 100644 2011.json create mode 100644 2012.json create mode 100644 2013.json create mode 100644 2014.json create mode 100644 2015.json create mode 100644 2016.json create mode 100644 2017.json create mode 100644 2018.json mode change 100644 => 100755 fetch_holidays.py create mode 100755 update.py diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..fd3673e --- /dev/null +++ b/.travis.yml @@ -0,0 +1,13 @@ +language: python +python: + - '3.6' +before_script: + - git config credential.helper "store --file=.git/credentials" + - echo "https://${GITHUB_TOKEN}:@github.com" > .git/credentials + - git checkout master +script: + - pytest + - ./update.py +branches: + only: + - master diff --git a/2007.json b/2007.json new file mode 100644 index 0000000..3add6d1 --- /dev/null +++ b/2007.json @@ -0,0 +1,158 @@ +{ + "year": 2007, + "papers": [ + "http://www.gov.cn/zhengce/content/2008-03/28/content_1761.htm" + ], + "days": [ + { + "name": "元旦", + "date": "2006-12-30", + "isOffDay": false + }, + { + "name": "元旦", + "date": "2006-12-31", + "isOffDay": false + }, + { + "name": "元旦", + "date": "2007-01-01", + "isOffDay": true + }, + { + "name": "元旦", + "date": "2007-01-02", + "isOffDay": true + }, + { + "name": "元旦", + "date": "2007-01-03", + "isOffDay": true + }, + { + "name": "春节", + "date": "2007-02-18", + "isOffDay": true + }, + { + "name": "春节", + "date": "2007-02-19", + "isOffDay": true + }, + { + "name": "春节", + "date": "2007-02-20", + "isOffDay": true + }, + { + "name": "春节", + "date": "2007-02-21", + "isOffDay": true + }, + { + "name": "春节", + "date": "2007-02-22", + "isOffDay": true + }, + { + "name": "春节", + "date": "2007-02-23", + "isOffDay": true + }, + { + "name": "春节", + "date": "2007-02-24", + "isOffDay": true + }, + { + "name": "“五一”", + "date": "2007-04-28", + "isOffDay": false + }, + { + "name": "“五一”", + "date": "2007-04-29", + "isOffDay": false + }, + { + "name": "“五一”", + "date": "2007-05-01", + "isOffDay": true + }, + { + "name": "“五一”", + "date": "2007-05-02", + "isOffDay": true + }, + { + "name": "“五一”", + "date": "2007-05-03", + "isOffDay": true + }, + { + "name": "“五一”", + "date": "2007-05-04", + "isOffDay": true + }, + { + "name": "“五一”", + "date": "2007-05-05", + "isOffDay": true + }, + { + "name": "“五一”", + "date": "2007-05-06", + "isOffDay": true + }, + { + "name": "“五一”", + "date": "2007-05-07", + "isOffDay": true + }, + { + "name": "“十一”", + "date": "2007-09-29", + "isOffDay": false + }, + { + "name": "“十一”", + "date": "2007-09-30", + "isOffDay": false + }, + { + "name": "“十一”", + "date": "2007-10-01", + "isOffDay": true + }, + { + "name": "“十一”", + "date": "2007-10-02", + "isOffDay": true + }, + { + "name": "“十一”", + "date": "2007-10-03", + "isOffDay": true + }, + { + "name": "“十一”", + "date": "2007-10-04", + "isOffDay": true + }, + { + "name": "“十一”", + "date": "2007-10-05", + "isOffDay": true + }, + { + "name": "“十一”", + "date": "2007-10-06", + "isOffDay": true + }, + { + "name": "“十一”", + "date": "2007-10-07", + "isOffDay": true + } + ] +} \ No newline at end of file diff --git a/2008.json b/2008.json new file mode 100644 index 0000000..38b63ff --- /dev/null +++ b/2008.json @@ -0,0 +1,183 @@ +{ + "year": 2008, + "papers": [ + "http://www.gov.cn/zhengce/content/2008-03/28/content_1645.htm" + ], + "days": [ + { + "name": "元旦", + "date": "2007-12-29", + "isOffDay": false + }, + { + "name": "元旦", + "date": "2007-12-30", + "isOffDay": true + }, + { + "name": "元旦", + "date": "2007-12-31", + "isOffDay": true + }, + { + "name": "元旦", + "date": "2008-01-01", + "isOffDay": true + }, + { + "name": "春节", + "date": "2008-02-02", + "isOffDay": false + }, + { + "name": "春节", + "date": "2008-02-03", + "isOffDay": false + }, + { + "name": "春节", + "date": "2008-02-06", + "isOffDay": true + }, + { + "name": "春节", + "date": "2008-02-07", + "isOffDay": true + }, + { + "name": "春节", + "date": "2008-02-08", + "isOffDay": true + }, + { + "name": "春节", + "date": "2008-02-09", + "isOffDay": true + }, + { + "name": "春节", + "date": "2008-02-10", + "isOffDay": true + }, + { + "name": "春节", + "date": "2008-02-11", + "isOffDay": true + }, + { + "name": "春节", + "date": "2008-02-12", + "isOffDay": true + }, + { + "name": "清明节", + "date": "2008-04-04", + "isOffDay": true + }, + { + "name": "清明节", + "date": "2008-04-05", + "isOffDay": true + }, + { + "name": "清明节", + "date": "2008-04-06", + "isOffDay": true + }, + { + "name": "“五一”国际劳动节", + "date": "2008-05-01", + "isOffDay": true + }, + { + "name": "“五一”国际劳动节", + "date": "2008-05-02", + "isOffDay": true + }, + { + "name": "“五一”国际劳动节", + "date": "2008-05-03", + "isOffDay": true + }, + { + "name": "“五一”国际劳动节", + "date": "2008-05-04", + "isOffDay": false + }, + { + "name": "端午节", + "date": "2008-06-07", + "isOffDay": true + }, + { + "name": "端午节", + "date": "2008-06-08", + "isOffDay": true + }, + { + "name": "端午节", + "date": "2008-06-09", + "isOffDay": true + }, + { + "name": "中秋节", + "date": "2008-09-13", + "isOffDay": true + }, + { + "name": "中秋节", + "date": "2008-09-14", + "isOffDay": true + }, + { + "name": "中秋节", + "date": "2008-09-15", + "isOffDay": true + }, + { + "name": "国庆节", + "date": "2008-09-27", + "isOffDay": false + }, + { + "name": "国庆节", + "date": "2008-09-28", + "isOffDay": false + }, + { + "name": "国庆节", + "date": "2008-09-29", + "isOffDay": true + }, + { + "name": "国庆节", + "date": "2008-09-30", + "isOffDay": true + }, + { + "name": "国庆节", + "date": "2008-10-01", + "isOffDay": true + }, + { + "name": "国庆节", + "date": "2008-10-02", + "isOffDay": true + }, + { + "name": "国庆节", + "date": "2008-10-03", + "isOffDay": true + }, + { + "name": "国庆节", + "date": "2008-10-04", + "isOffDay": true + }, + { + "name": "国庆节", + "date": "2008-10-05", + "isOffDay": true + } + ] +} \ No newline at end of file diff --git a/2009.json b/2009.json new file mode 100644 index 0000000..bb550a9 --- /dev/null +++ b/2009.json @@ -0,0 +1,173 @@ +{ + "year": 2009, + "papers": [ + "http://www.gov.cn/zhengce/content/2008-12/10/content_1572.htm" + ], + "days": [ + { + "name": "元旦", + "date": "2009-01-01", + "isOffDay": true + }, + { + "name": "元旦", + "date": "2009-01-02", + "isOffDay": true + }, + { + "name": "元旦", + "date": "2009-01-03", + "isOffDay": true + }, + { + "name": "元旦", + "date": "2009-01-04", + "isOffDay": false + }, + { + "name": "春节", + "date": "2009-01-24", + "isOffDay": false + }, + { + "name": "春节", + "date": "2009-01-25", + "isOffDay": true + }, + { + "name": "春节", + "date": "2009-01-26", + "isOffDay": true + }, + { + "name": "春节", + "date": "2009-01-27", + "isOffDay": true + }, + { + "name": "春节", + "date": "2009-01-28", + "isOffDay": true + }, + { + "name": "春节", + "date": "2009-01-29", + "isOffDay": true + }, + { + "name": "春节", + "date": "2009-01-30", + "isOffDay": true + }, + { + "name": "春节", + "date": "2009-01-31", + "isOffDay": true + }, + { + "name": "春节", + "date": "2009-02-01", + "isOffDay": false + }, + { + "name": "清明节", + "date": "2009-04-04", + "isOffDay": true + }, + { + "name": "清明节", + "date": "2009-04-05", + "isOffDay": true + }, + { + "name": "清明节", + "date": "2009-04-06", + "isOffDay": true + }, + { + "name": "劳动节", + "date": "2009-05-01", + "isOffDay": true + }, + { + "name": "劳动节", + "date": "2009-05-02", + "isOffDay": true + }, + { + "name": "劳动节", + "date": "2009-05-03", + "isOffDay": true + }, + { + "name": "端午节", + "date": "2009-05-28", + "isOffDay": true + }, + { + "name": "端午节", + "date": "2009-05-29", + "isOffDay": true + }, + { + "name": "端午节", + "date": "2009-05-30", + "isOffDay": true + }, + { + "name": "端午节", + "date": "2009-05-31", + "isOffDay": false + }, + { + "name": "国庆节、中秋节", + "date": "2009-09-27", + "isOffDay": false + }, + { + "name": "国庆节、中秋节", + "date": "2009-10-01", + "isOffDay": true + }, + { + "name": "国庆节、中秋节", + "date": "2009-10-02", + "isOffDay": true + }, + { + "name": "国庆节、中秋节", + "date": "2009-10-03", + "isOffDay": true + }, + { + "name": "国庆节、中秋节", + "date": "2009-10-04", + "isOffDay": true + }, + { + "name": "国庆节、中秋节", + "date": "2009-10-05", + "isOffDay": true + }, + { + "name": "国庆节、中秋节", + "date": "2009-10-06", + "isOffDay": true + }, + { + "name": "国庆节、中秋节", + "date": "2009-10-07", + "isOffDay": true + }, + { + "name": "国庆节、中秋节", + "date": "2009-10-08", + "isOffDay": true + }, + { + "name": "国庆节、中秋节", + "date": "2009-10-10", + "isOffDay": false + } + ] +} \ No newline at end of file diff --git a/2010.json b/2010.json new file mode 100644 index 0000000..4697d5c --- /dev/null +++ b/2010.json @@ -0,0 +1,193 @@ +{ + "year": 2010, + "papers": [ + "http://www.gov.cn/zhengce/content/2009-12/08/content_1476.htm" + ], + "days": [ + { + "name": "元旦", + "date": "2010-01-01", + "isOffDay": true + }, + { + "name": "元旦", + "date": "2010-01-02", + "isOffDay": true + }, + { + "name": "元旦", + "date": "2010-01-03", + "isOffDay": true + }, + { + "name": "春节", + "date": "2010-02-13", + "isOffDay": true + }, + { + "name": "春节", + "date": "2010-02-14", + "isOffDay": true + }, + { + "name": "春节", + "date": "2010-02-15", + "isOffDay": true + }, + { + "name": "春节", + "date": "2010-02-16", + "isOffDay": true + }, + { + "name": "春节", + "date": "2010-02-17", + "isOffDay": true + }, + { + "name": "春节", + "date": "2010-02-18", + "isOffDay": true + }, + { + "name": "春节", + "date": "2010-02-19", + "isOffDay": true + }, + { + "name": "春节", + "date": "2010-02-20", + "isOffDay": false + }, + { + "name": "春节", + "date": "2010-02-21", + "isOffDay": false + }, + { + "name": "清明节", + "date": "2010-04-03", + "isOffDay": true + }, + { + "name": "清明节", + "date": "2010-04-04", + "isOffDay": true + }, + { + "name": "清明节", + "date": "2010-04-05", + "isOffDay": true + }, + { + "name": "劳动节", + "date": "2010-05-01", + "isOffDay": true + }, + { + "name": "劳动节", + "date": "2010-05-02", + "isOffDay": true + }, + { + "name": "劳动节", + "date": "2010-05-03", + "isOffDay": true + }, + { + "name": "端午节", + "date": "2010-06-12", + "isOffDay": false + }, + { + "name": "端午节", + "date": "2010-06-13", + "isOffDay": false + }, + { + "name": "端午节", + "date": "2010-06-14", + "isOffDay": true + }, + { + "name": "端午节", + "date": "2010-06-15", + "isOffDay": true + }, + { + "name": "端午节", + "date": "2010-06-16", + "isOffDay": true + }, + { + "name": "中秋节", + "date": "2010-09-19", + "isOffDay": false + }, + { + "name": "中秋节", + "date": "2010-09-22", + "isOffDay": true + }, + { + "name": "中秋节", + "date": "2010-09-23", + "isOffDay": true + }, + { + "name": "中秋节", + "date": "2010-09-24", + "isOffDay": true + }, + { + "name": "中秋节", + "date": "2010-09-25", + "isOffDay": false + }, + { + "name": "国庆节", + "date": "2010-09-26", + "isOffDay": false + }, + { + "name": "国庆节", + "date": "2010-10-01", + "isOffDay": true + }, + { + "name": "国庆节", + "date": "2010-10-02", + "isOffDay": true + }, + { + "name": "国庆节", + "date": "2010-10-03", + "isOffDay": true + }, + { + "name": "国庆节", + "date": "2010-10-04", + "isOffDay": true + }, + { + "name": "国庆节", + "date": "2010-10-05", + "isOffDay": true + }, + { + "name": "国庆节", + "date": "2010-10-06", + "isOffDay": true + }, + { + "name": "国庆节", + "date": "2010-10-07", + "isOffDay": true + }, + { + "name": "国庆节", + "date": "2010-10-09", + "isOffDay": false + } + ] +} \ No newline at end of file diff --git a/2011.json b/2011.json new file mode 100644 index 0000000..44b495b --- /dev/null +++ b/2011.json @@ -0,0 +1,148 @@ +{ + "year": 2011, + "papers": [ + "http://www.gov.cn/zhengce/content/2010-12/10/content_1423.htm" + ], + "days": [ + { + "name": "元旦", + "date": "2011-01-01", + "isOffDay": true + }, + { + "name": "元旦", + "date": "2011-01-02", + "isOffDay": true + }, + { + "name": "元旦", + "date": "2011-01-03", + "isOffDay": true + }, + { + "name": "春节", + "date": "2011-01-30", + "isOffDay": false + }, + { + "name": "春节", + "date": "2011-02-02", + "isOffDay": true + }, + { + "name": "春节", + "date": "2011-02-12", + "isOffDay": false + }, + { + "name": "清明节", + "date": "2011-04-02", + "isOffDay": false + }, + { + "name": "清明节", + "date": "2011-04-03", + "isOffDay": true + }, + { + "name": "清明节", + "date": "2011-04-04", + "isOffDay": true + }, + { + "name": "清明节", + "date": "2011-04-05", + "isOffDay": true + }, + { + "name": "劳动节", + "date": "2011-04-30", + "isOffDay": true + }, + { + "name": "劳动节", + "date": "2011-05-01", + "isOffDay": true + }, + { + "name": "劳动节", + "date": "2011-05-02", + "isOffDay": true + }, + { + "name": "端午节", + "date": "2011-06-04", + "isOffDay": true + }, + { + "name": "端午节", + "date": "2011-06-05", + "isOffDay": true + }, + { + "name": "端午节", + "date": "2011-06-06", + "isOffDay": true + }, + { + "name": "中秋节", + "date": "2011-09-10", + "isOffDay": true + }, + { + "name": "中秋节", + "date": "2011-09-11", + "isOffDay": true + }, + { + "name": "中秋节", + "date": "2011-09-12", + "isOffDay": true + }, + { + "name": "国庆节", + "date": "2011-10-01", + "isOffDay": true + }, + { + "name": "国庆节", + "date": "2011-10-02", + "isOffDay": true + }, + { + "name": "国庆节", + "date": "2011-10-03", + "isOffDay": true + }, + { + "name": "国庆节", + "date": "2011-10-04", + "isOffDay": true + }, + { + "name": "国庆节", + "date": "2011-10-05", + "isOffDay": true + }, + { + "name": "国庆节", + "date": "2011-10-06", + "isOffDay": true + }, + { + "name": "国庆节", + "date": "2011-10-07", + "isOffDay": true + }, + { + "name": "国庆节", + "date": "2011-10-08", + "isOffDay": false + }, + { + "name": "国庆节", + "date": "2011-10-09", + "isOffDay": false + } + ] +} \ No newline at end of file diff --git a/2012.json b/2012.json new file mode 100644 index 0000000..224be05 --- /dev/null +++ b/2012.json @@ -0,0 +1,178 @@ +{ + "year": 2012, + "papers": [ + "http://www.gov.cn/zhengce/content/2011-12/06/content_1411.htm" + ], + "days": [ + { + "name": "元旦", + "date": "2011-12-31", + "isOffDay": false + }, + { + "name": "元旦", + "date": "2012-01-01", + "isOffDay": true + }, + { + "name": "元旦", + "date": "2012-01-02", + "isOffDay": true + }, + { + "name": "元旦", + "date": "2012-01-03", + "isOffDay": true + }, + { + "name": "春节", + "date": "2012-01-21", + "isOffDay": false + }, + { + "name": "春节", + "date": "2012-01-22", + "isOffDay": true + }, + { + "name": "春节", + "date": "2012-01-23", + "isOffDay": true + }, + { + "name": "春节", + "date": "2012-01-24", + "isOffDay": true + }, + { + "name": "春节", + "date": "2012-01-25", + "isOffDay": true + }, + { + "name": "春节", + "date": "2012-01-26", + "isOffDay": true + }, + { + "name": "春节", + "date": "2012-01-27", + "isOffDay": true + }, + { + "name": "春节", + "date": "2012-01-28", + "isOffDay": true + }, + { + "name": "春节", + "date": "2012-01-29", + "isOffDay": false + }, + { + "name": "清明节", + "date": "2012-03-31", + "isOffDay": false + }, + { + "name": "清明节", + "date": "2012-04-01", + "isOffDay": false + }, + { + "name": "清明节", + "date": "2012-04-02", + "isOffDay": true + }, + { + "name": "清明节", + "date": "2012-04-03", + "isOffDay": true + }, + { + "name": "清明节", + "date": "2012-04-04", + "isOffDay": true + }, + { + "name": "劳动节", + "date": "2012-04-28", + "isOffDay": false + }, + { + "name": "劳动节", + "date": "2012-04-29", + "isOffDay": true + }, + { + "name": "劳动节", + "date": "2012-04-30", + "isOffDay": true + }, + { + "name": "劳动节", + "date": "2012-05-01", + "isOffDay": true + }, + { + "name": "端午节", + "date": "2012-06-22", + "isOffDay": true + }, + { + "name": "端午节", + "date": "2012-06-23", + "isOffDay": true + }, + { + "name": "端午节", + "date": "2012-06-24", + "isOffDay": true + }, + { + "name": "中秋节、国庆节", + "date": "2012-09-29", + "isOffDay": false + }, + { + "name": "中秋节、国庆节", + "date": "2012-09-30", + "isOffDay": true + }, + { + "name": "中秋节、国庆节", + "date": "2012-10-01", + "isOffDay": true + }, + { + "name": "中秋节、国庆节", + "date": "2012-10-02", + "isOffDay": true + }, + { + "name": "中秋节、国庆节", + "date": "2012-10-03", + "isOffDay": true + }, + { + "name": "中秋节、国庆节", + "date": "2012-10-04", + "isOffDay": true + }, + { + "name": "中秋节、国庆节", + "date": "2012-10-05", + "isOffDay": true + }, + { + "name": "中秋节、国庆节", + "date": "2012-10-06", + "isOffDay": true + }, + { + "name": "中秋节、国庆节", + "date": "2012-10-07", + "isOffDay": true + } + ] +} \ No newline at end of file diff --git a/2013.json b/2013.json new file mode 100644 index 0000000..1bff83c --- /dev/null +++ b/2013.json @@ -0,0 +1,213 @@ +{ + "year": 2013, + "papers": [ + "http://www.gov.cn/zhengce/content/2012-12/10/content_1353.htm" + ], + "days": [ + { + "name": "元旦", + "date": "2013-01-01", + "isOffDay": true + }, + { + "name": "元旦", + "date": "2013-01-02", + "isOffDay": true + }, + { + "name": "元旦", + "date": "2013-01-03", + "isOffDay": true + }, + { + "name": "元旦", + "date": "2013-01-05", + "isOffDay": false + }, + { + "name": "元旦", + "date": "2013-01-06", + "isOffDay": false + }, + { + "name": "春节", + "date": "2013-02-09", + "isOffDay": true + }, + { + "name": "春节", + "date": "2013-02-10", + "isOffDay": true + }, + { + "name": "春节", + "date": "2013-02-11", + "isOffDay": true + }, + { + "name": "春节", + "date": "2013-02-12", + "isOffDay": true + }, + { + "name": "春节", + "date": "2013-02-13", + "isOffDay": true + }, + { + "name": "春节", + "date": "2013-02-14", + "isOffDay": true + }, + { + "name": "春节", + "date": "2013-02-15", + "isOffDay": true + }, + { + "name": "春节", + "date": "2013-02-16", + "isOffDay": false + }, + { + "name": "春节", + "date": "2013-02-17", + "isOffDay": false + }, + { + "name": "清明节", + "date": "2013-04-04", + "isOffDay": true + }, + { + "name": "清明节", + "date": "2013-04-05", + "isOffDay": true + }, + { + "name": "清明节", + "date": "2013-04-06", + "isOffDay": true + }, + { + "name": "清明节", + "date": "2013-04-07", + "isOffDay": false + }, + { + "name": "劳动节", + "date": "2013-04-27", + "isOffDay": false + }, + { + "name": "劳动节", + "date": "2013-04-28", + "isOffDay": false + }, + { + "name": "劳动节", + "date": "2013-04-29", + "isOffDay": true + }, + { + "name": "劳动节", + "date": "2013-04-30", + "isOffDay": true + }, + { + "name": "劳动节", + "date": "2013-05-01", + "isOffDay": true + }, + { + "name": "端午节", + "date": "2013-06-08", + "isOffDay": false + }, + { + "name": "端午节", + "date": "2013-06-09", + "isOffDay": false + }, + { + "name": "端午节", + "date": "2013-06-10", + "isOffDay": true + }, + { + "name": "端午节", + "date": "2013-06-11", + "isOffDay": true + }, + { + "name": "端午节", + "date": "2013-06-12", + "isOffDay": true + }, + { + "name": "中秋节", + "date": "2013-09-19", + "isOffDay": true + }, + { + "name": "中秋节", + "date": "2013-09-20", + "isOffDay": true + }, + { + "name": "中秋节", + "date": "2013-09-21", + "isOffDay": true + }, + { + "name": "中秋节", + "date": "2013-09-22", + "isOffDay": false + }, + { + "name": "国庆节", + "date": "2013-09-29", + "isOffDay": false + }, + { + "name": "国庆节", + "date": "2013-10-01", + "isOffDay": true + }, + { + "name": "国庆节", + "date": "2013-10-02", + "isOffDay": true + }, + { + "name": "国庆节", + "date": "2013-10-03", + "isOffDay": true + }, + { + "name": "国庆节", + "date": "2013-10-04", + "isOffDay": true + }, + { + "name": "国庆节", + "date": "2013-10-05", + "isOffDay": true + }, + { + "name": "国庆节", + "date": "2013-10-06", + "isOffDay": true + }, + { + "name": "国庆节", + "date": "2013-10-07", + "isOffDay": true + }, + { + "name": "国庆节", + "date": "2013-10-12", + "isOffDay": false + } + ] +} \ No newline at end of file diff --git a/2014.json b/2014.json new file mode 100644 index 0000000..c5a85a4 --- /dev/null +++ b/2014.json @@ -0,0 +1,143 @@ +{ + "year": 2014, + "papers": [ + "http://www.gov.cn/zhengce/content/2014-01/02/content_1194.htm" + ], + "days": [ + { + "name": "元旦", + "date": "2014-01-01", + "isOffDay": true + }, + { + "name": "春节", + "date": "2014-01-26", + "isOffDay": false + }, + { + "name": "春节", + "date": "2014-01-31", + "isOffDay": true + }, + { + "name": "春节", + "date": "2014-02-01", + "isOffDay": true + }, + { + "name": "春节", + "date": "2014-02-02", + "isOffDay": true + }, + { + "name": "春节", + "date": "2014-02-03", + "isOffDay": true + }, + { + "name": "春节", + "date": "2014-02-04", + "isOffDay": true + }, + { + "name": "春节", + "date": "2014-02-05", + "isOffDay": true + }, + { + "name": "春节", + "date": "2014-02-06", + "isOffDay": true + }, + { + "name": "春节", + "date": "2014-02-08", + "isOffDay": false + }, + { + "name": "清明节", + "date": "2014-04-05", + "isOffDay": true + }, + { + "name": "清明节", + "date": "2014-04-07", + "isOffDay": true + }, + { + "name": "劳动节", + "date": "2014-05-01", + "isOffDay": true + }, + { + "name": "劳动节", + "date": "2014-05-02", + "isOffDay": true + }, + { + "name": "劳动节", + "date": "2014-05-03", + "isOffDay": true + }, + { + "name": "劳动节", + "date": "2014-05-04", + "isOffDay": false + }, + { + "name": "端午节", + "date": "2014-06-02", + "isOffDay": true + }, + { + "name": "中秋节", + "date": "2014-09-08", + "isOffDay": true + }, + { + "name": "国庆节", + "date": "2014-09-28", + "isOffDay": false + }, + { + "name": "国庆节", + "date": "2014-10-01", + "isOffDay": true + }, + { + "name": "国庆节", + "date": "2014-10-02", + "isOffDay": true + }, + { + "name": "国庆节", + "date": "2014-10-03", + "isOffDay": true + }, + { + "name": "国庆节", + "date": "2014-10-04", + "isOffDay": true + }, + { + "name": "国庆节", + "date": "2014-10-05", + "isOffDay": true + }, + { + "name": "国庆节", + "date": "2014-10-06", + "isOffDay": true + }, + { + "name": "国庆节", + "date": "2014-10-07", + "isOffDay": true + }, + { + "name": "国庆节", + "date": "2014-10-11", + "isOffDay": false + } + ] +} \ No newline at end of file diff --git a/2015.json b/2015.json new file mode 100644 index 0000000..5080c32 --- /dev/null +++ b/2015.json @@ -0,0 +1,143 @@ +{ + "year": 2015, + "papers": [ + "http://www.gov.cn/zhengce/content/2014-12/16/content_9302.htm" + ], + "days": [ + { + "name": "元旦", + "date": "2015-01-01", + "isOffDay": true + }, + { + "name": "元旦", + "date": "2015-01-02", + "isOffDay": true + }, + { + "name": "元旦", + "date": "2015-01-03", + "isOffDay": true + }, + { + "name": "元旦", + "date": "2015-01-04", + "isOffDay": false + }, + { + "name": "春节", + "date": "2015-02-15", + "isOffDay": false + }, + { + "name": "春节", + "date": "2015-02-18", + "isOffDay": true + }, + { + "name": "春节", + "date": "2015-02-19", + "isOffDay": true + }, + { + "name": "春节", + "date": "2015-02-20", + "isOffDay": true + }, + { + "name": "春节", + "date": "2015-02-21", + "isOffDay": true + }, + { + "name": "春节", + "date": "2015-02-22", + "isOffDay": true + }, + { + "name": "春节", + "date": "2015-02-23", + "isOffDay": true + }, + { + "name": "春节", + "date": "2015-02-24", + "isOffDay": true + }, + { + "name": "春节", + "date": "2015-02-28", + "isOffDay": false + }, + { + "name": "清明节", + "date": "2015-04-05", + "isOffDay": true + }, + { + "name": "清明节", + "date": "2015-04-06", + "isOffDay": true + }, + { + "name": "劳动节", + "date": "2015-05-01", + "isOffDay": true + }, + { + "name": "端午节", + "date": "2015-06-20", + "isOffDay": true + }, + { + "name": "端午节", + "date": "2015-06-22", + "isOffDay": true + }, + { + "name": "中秋节", + "date": "2015-09-27", + "isOffDay": true + }, + { + "name": "国庆节", + "date": "2015-10-01", + "isOffDay": true + }, + { + "name": "国庆节", + "date": "2015-10-02", + "isOffDay": true + }, + { + "name": "国庆节", + "date": "2015-10-03", + "isOffDay": true + }, + { + "name": "国庆节", + "date": "2015-10-04", + "isOffDay": true + }, + { + "name": "国庆节", + "date": "2015-10-05", + "isOffDay": true + }, + { + "name": "国庆节", + "date": "2015-10-06", + "isOffDay": true + }, + { + "name": "国庆节", + "date": "2015-10-07", + "isOffDay": true + }, + { + "name": "国庆节", + "date": "2015-10-10", + "isOffDay": false + } + ] +} \ No newline at end of file diff --git a/2016.json b/2016.json new file mode 100644 index 0000000..adbec9d --- /dev/null +++ b/2016.json @@ -0,0 +1,7 @@ +{ + "year": 2016, + "papers": [ + "http://www.gov.cn/zhengce/content/2015-12/10/content_10394.htm" + ], + "days": [] +} \ No newline at end of file diff --git a/2017.json b/2017.json new file mode 100644 index 0000000..4a652a2 --- /dev/null +++ b/2017.json @@ -0,0 +1,153 @@ +{ + "year": 2017, + "papers": [ + "http://www.gov.cn/zhengce/content/2016-12/01/content_5141603.htm" + ], + "days": [ + { + "name": "元旦", + "date": "2017-01-01", + "isOffDay": true + }, + { + "name": "元旦", + "date": "2017-01-02", + "isOffDay": true + }, + { + "name": "春节", + "date": "2017-01-22", + "isOffDay": false + }, + { + "name": "春节", + "date": "2017-01-27", + "isOffDay": true + }, + { + "name": "春节", + "date": "2017-01-28", + "isOffDay": true + }, + { + "name": "春节", + "date": "2017-01-29", + "isOffDay": true + }, + { + "name": "春节", + "date": "2017-01-30", + "isOffDay": true + }, + { + "name": "春节", + "date": "2017-01-31", + "isOffDay": true + }, + { + "name": "春节", + "date": "2017-02-01", + "isOffDay": true + }, + { + "name": "春节", + "date": "2017-02-02", + "isOffDay": true + }, + { + "name": "春节", + "date": "2017-02-04", + "isOffDay": false + }, + { + "name": "清明节", + "date": "2017-04-01", + "isOffDay": false + }, + { + "name": "清明节", + "date": "2017-04-02", + "isOffDay": true + }, + { + "name": "清明节", + "date": "2017-04-03", + "isOffDay": true + }, + { + "name": "清明节", + "date": "2017-04-04", + "isOffDay": true + }, + { + "name": "劳动节", + "date": "2017-05-01", + "isOffDay": true + }, + { + "name": "端午节", + "date": "2017-05-27", + "isOffDay": false + }, + { + "name": "端午节", + "date": "2017-05-28", + "isOffDay": true + }, + { + "name": "端午节", + "date": "2017-05-29", + "isOffDay": true + }, + { + "name": "端午节", + "date": "2017-05-30", + "isOffDay": true + }, + { + "name": "中秋节、国庆节", + "date": "2017-09-30", + "isOffDay": false + }, + { + "name": "中秋节、国庆节", + "date": "2017-10-01", + "isOffDay": true + }, + { + "name": "中秋节、国庆节", + "date": "2017-10-02", + "isOffDay": true + }, + { + "name": "中秋节、国庆节", + "date": "2017-10-03", + "isOffDay": true + }, + { + "name": "中秋节、国庆节", + "date": "2017-10-04", + "isOffDay": true + }, + { + "name": "中秋节、国庆节", + "date": "2017-10-05", + "isOffDay": true + }, + { + "name": "中秋节、国庆节", + "date": "2017-10-06", + "isOffDay": true + }, + { + "name": "中秋节、国庆节", + "date": "2017-10-07", + "isOffDay": true + }, + { + "name": "中秋节、国庆节", + "date": "2017-10-08", + "isOffDay": true + } + ] +} \ No newline at end of file diff --git a/2018.json b/2018.json new file mode 100644 index 0000000..c4411a0 --- /dev/null +++ b/2018.json @@ -0,0 +1,153 @@ +{ + "year": 2018, + "papers": [ + "http://www.gov.cn/zhengce/content/2017-11/30/content_5243579.htm" + ], + "days": [ + { + "name": "元旦", + "date": "2018-01-01", + "isOffDay": true + }, + { + "name": "春节", + "date": "2018-02-11", + "isOffDay": false + }, + { + "name": "春节", + "date": "2018-02-15", + "isOffDay": true + }, + { + "name": "春节", + "date": "2018-02-16", + "isOffDay": true + }, + { + "name": "春节", + "date": "2018-02-17", + "isOffDay": true + }, + { + "name": "春节", + "date": "2018-02-18", + "isOffDay": true + }, + { + "name": "春节", + "date": "2018-02-19", + "isOffDay": true + }, + { + "name": "春节", + "date": "2018-02-20", + "isOffDay": true + }, + { + "name": "春节", + "date": "2018-02-21", + "isOffDay": true + }, + { + "name": "春节", + "date": "2018-02-24", + "isOffDay": false + }, + { + "name": "清明节", + "date": "2018-04-05", + "isOffDay": true + }, + { + "name": "清明节", + "date": "2018-04-06", + "isOffDay": true + }, + { + "name": "清明节", + "date": "2018-04-07", + "isOffDay": true + }, + { + "name": "清明节", + "date": "2018-04-08", + "isOffDay": false + }, + { + "name": "劳动节", + "date": "2018-04-28", + "isOffDay": false + }, + { + "name": "劳动节", + "date": "2018-04-29", + "isOffDay": true + }, + { + "name": "劳动节", + "date": "2018-04-30", + "isOffDay": true + }, + { + "name": "劳动节", + "date": "2018-05-01", + "isOffDay": true + }, + { + "name": "端午节", + "date": "2018-06-18", + "isOffDay": true + }, + { + "name": "中秋节", + "date": "2018-09-24", + "isOffDay": true + }, + { + "name": "国庆节", + "date": "2018-09-29", + "isOffDay": false + }, + { + "name": "国庆节", + "date": "2018-09-30", + "isOffDay": false + }, + { + "name": "国庆节", + "date": "2018-10-01", + "isOffDay": true + }, + { + "name": "国庆节", + "date": "2018-10-02", + "isOffDay": true + }, + { + "name": "国庆节", + "date": "2018-10-03", + "isOffDay": true + }, + { + "name": "国庆节", + "date": "2018-10-04", + "isOffDay": true + }, + { + "name": "国庆节", + "date": "2018-10-05", + "isOffDay": true + }, + { + "name": "国庆节", + "date": "2018-10-06", + "isOffDay": true + }, + { + "name": "国庆节", + "date": "2018-10-07", + "isOffDay": true + } + ] +} \ No newline at end of file diff --git a/description_parsing_cases.json b/description_parsing_cases.json index a829ca1..16bee30 100644 --- a/description_parsing_cases.json +++ b/description_parsing_cases.json @@ -3,370 +3,229 @@ "year": 2019, "description": "2018年12月30日至2019年1月1日放假调休,共3天。2018年12月29日(星期六)上班。", "expected": [ - { - "date": "2018-12-30", - "isOffDay": true - }, - { - "date": "2018-12-31", - "isOffDay": true - }, - { - "date": "2019-01-01", - "isOffDay": true - }, - { - "date": "2018-12-29", - "isOffDay": false - } + { "date": "2018-12-30", "isOffDay": true }, + { "date": "2018-12-31", "isOffDay": true }, + { "date": "2019-01-01", "isOffDay": true }, + { "date": "2018-12-29", "isOffDay": false } ] }, { "year": 2019, "description": "2月4日至10日放假调休,共7天。2月2日(星期六)、2月3日(星期日)上班。", "expected": [ - { - "date": "2019-02-04", - "isOffDay": true - }, - { - "date": "2019-02-05", - "isOffDay": true - }, - { - "date": "2019-02-06", - "isOffDay": true - }, - { - "date": "2019-02-07", - "isOffDay": true - }, - { - "date": "2019-02-08", - "isOffDay": true - }, - { - "date": "2019-02-09", - "isOffDay": true - }, - { - "date": "2019-02-10", - "isOffDay": true - }, - { - "date": "2019-02-02", - "isOffDay": false - }, - { - "date": "2019-02-03", - "isOffDay": false - } + { "date": "2019-02-04", "isOffDay": true }, + { "date": "2019-02-05", "isOffDay": true }, + { "date": "2019-02-06", "isOffDay": true }, + { "date": "2019-02-07", "isOffDay": true }, + { "date": "2019-02-08", "isOffDay": true }, + { "date": "2019-02-09", "isOffDay": true }, + { "date": "2019-02-10", "isOffDay": true }, + { "date": "2019-02-02", "isOffDay": false }, + { "date": "2019-02-03", "isOffDay": false } ] }, { "year": 2019, "description": "4月5日放假,与周末连休。", - "expected": [ - { - "date": "2019-04-05", - "isOffDay": true - } - ] + "expected": [{ "date": "2019-04-05", "isOffDay": true }] }, { "year": 2019, "description": "5月1日放假。", - "expected": [ - { - "date": "2019-05-01", - "isOffDay": true - } - ] + "expected": [{ "date": "2019-05-01", "isOffDay": true }] }, { "year": 2019, "description": "6月7日放假,与周末连休。", - "expected": [ - { - "date": "2019-06-07", - "isOffDay": true - } - ] + "expected": [{ "date": "2019-06-07", "isOffDay": true }] }, { "year": 2019, "description": "9月13日放假,与周末连休。", - "expected": [ - { - "date": "2019-09-13", - "isOffDay": true - } - ] + "expected": [{ "date": "2019-09-13", "isOffDay": true }] }, { "year": 2019, "description": "10月1日至7日放假调休,共7天。9月29日(星期日)、10月12日(星期六)上班。", "expected": [ - { - "date": "2019-10-01", - "isOffDay": true - }, - { - "date": "2019-10-02", - "isOffDay": true - }, - { - "date": "2019-10-03", - "isOffDay": true - }, - { - "date": "2019-10-04", - "isOffDay": true - }, - { - "date": "2019-10-05", - "isOffDay": true - }, - { - "date": "2019-10-06", - "isOffDay": true - }, - { - "date": "2019-10-07", - "isOffDay": true - }, - { - "date": "2019-09-29", - "isOffDay": false - }, - { - "date": "2019-10-12", - "isOffDay": false - } + { "date": "2019-10-01", "isOffDay": true }, + { "date": "2019-10-02", "isOffDay": true }, + { "date": "2019-10-03", "isOffDay": true }, + { "date": "2019-10-04", "isOffDay": true }, + { "date": "2019-10-05", "isOffDay": true }, + { "date": "2019-10-06", "isOffDay": true }, + { "date": "2019-10-07", "isOffDay": true }, + { "date": "2019-09-29", "isOffDay": false }, + { "date": "2019-10-12", "isOffDay": false } ] }, { "year": 2018, "description": "1月1日放假,与周末连休。", - "expected": [ - { - "date": "2018-01-01", - "isOffDay": true - } - ] + "expected": [{ "date": "2018-01-01", "isOffDay": true }] }, { "year": 2018, "description": "2月15日至21日放假调休,共7天。2月11日(星期日)、2月24日(星期六)上班。", "expected": [ - { - "date": "2018-02-15", - "isOffDay": true - }, - { - "date": "2018-02-16", - "isOffDay": true - }, - { - "date": "2018-02-17", - "isOffDay": true - }, - { - "date": "2018-02-18", - "isOffDay": true - }, - { - "date": "2018-02-19", - "isOffDay": true - }, - { - "date": "2018-02-20", - "isOffDay": true - }, - { - "date": "2018-02-21", - "isOffDay": true - }, - { - "date": "2018-02-11", - "isOffDay": false - }, - { - "date": "2018-02-24", - "isOffDay": false - } + { "date": "2018-02-15", "isOffDay": true }, + { "date": "2018-02-16", "isOffDay": true }, + { "date": "2018-02-17", "isOffDay": true }, + { "date": "2018-02-18", "isOffDay": true }, + { "date": "2018-02-19", "isOffDay": true }, + { "date": "2018-02-20", "isOffDay": true }, + { "date": "2018-02-21", "isOffDay": true }, + { "date": "2018-02-11", "isOffDay": false }, + { "date": "2018-02-24", "isOffDay": false } ] }, { "year": 2018, "description": "4月5日至7日放假调休,共3天。4月8日(星期日)上班。", "expected": [ - { - "date": "2018-04-05", - "isOffDay": true - }, - { - "date": "2018-04-06", - "isOffDay": true - }, - { - "date": "2018-04-07", - "isOffDay": true - }, - { - "date": "2018-04-08", - "isOffDay": false - } + { "date": "2018-04-05", "isOffDay": true }, + { "date": "2018-04-06", "isOffDay": true }, + { "date": "2018-04-07", "isOffDay": true }, + { "date": "2018-04-08", "isOffDay": false } ] }, { "year": 2018, "description": "4月29日至5月1日放假调休,共3天。4月28日(星期六)上班。", "expected": [ - { - "date": "2018-04-29", - "isOffDay": true - }, - { - "date": "2018-04-30", - "isOffDay": true - }, - { - "date": "2018-05-01", - "isOffDay": true - }, - { - "date": "2018-04-28", - "isOffDay": false - } + { "date": "2018-04-29", "isOffDay": true }, + { "date": "2018-04-30", "isOffDay": true }, + { "date": "2018-05-01", "isOffDay": true }, + { "date": "2018-04-28", "isOffDay": false } ] }, { "year": 2018, "description": "6月18日放假,与周末连休。", - "expected": [ - { - "date": "2018-06-18", - "isOffDay": true - } - ] + "expected": [{ "date": "2018-06-18", "isOffDay": true }] }, { "year": 2018, "description": "9月24日放假,与周末连休。", - "expected": [ - { - "date": "2018-09-24", - "isOffDay": true - } - ] + "expected": [{ "date": "2018-09-24", "isOffDay": true }] }, { "year": 2018, "description": "10月1日至7日放假调休,共7天。9月29日(星期六)、9月30日(星期日)上班。", "expected": [ - { - "date": "2018-10-01", - "isOffDay": true - }, - { - "date": "2018-10-02", - "isOffDay": true - }, - { - "date": "2018-10-03", - "isOffDay": true - }, - { - "date": "2018-10-04", - "isOffDay": true - }, - { - "date": "2018-10-05", - "isOffDay": true - }, - { - "date": "2018-10-06", - "isOffDay": true - }, - { - "date": "2018-10-07", - "isOffDay": true - }, - { - "date": "2018-09-29", - "isOffDay": false - }, - { - "date": "2018-09-30", - "isOffDay": false - } + { "date": "2018-10-01", "isOffDay": true }, + { "date": "2018-10-02", "isOffDay": true }, + { "date": "2018-10-03", "isOffDay": true }, + { "date": "2018-10-04", "isOffDay": true }, + { "date": "2018-10-05", "isOffDay": true }, + { "date": "2018-10-06", "isOffDay": true }, + { "date": "2018-10-07", "isOffDay": true }, + { "date": "2018-09-29", "isOffDay": false }, + { "date": "2018-09-30", "isOffDay": false } + ] + }, + { + "year": 2016, + "description": "1月1日放假,与周末连休。", + "expected": [{ "date": "2016-01-01", "isOffDay": true }] + }, + { + "year": 2016, + "description": "2月7日至13日放假调休,共7天。2月6日(星期六)、2月14日(星期日)上班。", + "expected": [ + { "date": "2016-02-07", "isOffDay": true }, + { "date": "2016-02-08", "isOffDay": true }, + { "date": "2016-02-09", "isOffDay": true }, + { "date": "2016-02-10", "isOffDay": true }, + { "date": "2016-02-11", "isOffDay": true }, + { "date": "2016-02-12", "isOffDay": true }, + { "date": "2016-02-13", "isOffDay": true }, + { "date": "2016-02-06", "isOffDay": false }, + { "date": "2016-02-14", "isOffDay": false } + ] + }, + { + "year": 2016, + "description": "4月4日放假,与周末连休。", + "expected": [{ "date": "2016-04-04", "isOffDay": true }] + }, + { + "year": 2016, + "description": "5月1日放假,5月2日(星期一)补休。", + "expected": [ + { "date": "2016-05-01", "isOffDay": true }, + { "date": "2016-05-02", "isOffDay": true } + ] + }, + { + "year": 2016, + "description": "6月9日至11日放假调休,共3天。6月12日(星期日)上班。", + "expected": [ + { "date": "2016-06-09", "isOffDay": true }, + { "date": "2016-06-10", "isOffDay": true }, + { "date": "2016-06-11", "isOffDay": true }, + { "date": "2016-06-12", "isOffDay": false } + ] + }, + { + "year": 2016, + "description": "9月15日至17日放假调休,共3天。9月18日(星期日)上班。", + "expected": [ + { "date": "2016-09-15", "isOffDay": true }, + { "date": "2016-09-16", "isOffDay": true }, + { "date": "2016-09-17", "isOffDay": true }, + { "date": "2016-09-18", "isOffDay": false } + ] + }, + { + "year": 2016, + "description": "10月1日至7日放假调休,共7天。10月8日(星期六)、10月9日(星期日)上班。", + "expected": [ + { "date": "2016-10-01", "isOffDay": true }, + { "date": "2016-10-02", "isOffDay": true }, + { "date": "2016-10-03", "isOffDay": true }, + { "date": "2016-10-04", "isOffDay": true }, + { "date": "2016-10-05", "isOffDay": true }, + { "date": "2016-10-06", "isOffDay": true }, + { "date": "2016-10-07", "isOffDay": true }, + { "date": "2016-10-08", "isOffDay": false }, + { "date": "2016-10-09", "isOffDay": false } + ] + }, + { + "year": 2016, + "description": "5月1日放假,5月2日(星期一)补休。", + "expected": [ + { "date": "2016-05-01", "isOffDay": true }, + { "date": "2016-05-02", "isOffDay": true } ] }, { "year": 2014, "description": "1月1日放假1天。", - "expected": [ - { - "date": "2014-01-01", - "isOffDay": true - } - ] + "expected": [{ "date": "2014-01-01", "isOffDay": true }] }, { "year": 2014, "description": "1月31日至2月6日放假调休,共7天。1月26日(星期日)、2月8日(星期六)上班。", "expected": [ - { - "date": "2014-01-31", - "isOffDay": true - }, - { - "date": "2014-02-01", - "isOffDay": true - }, - { - "date": "2014-02-02", - "isOffDay": true - }, - { - "date": "2014-02-03", - "isOffDay": true - }, - { - "date": "2014-02-04", - "isOffDay": true - }, - { - "date": "2014-02-05", - "isOffDay": true - }, - { - "date": "2014-02-06", - "isOffDay": true - }, - { - "date": "2014-01-26", - "isOffDay": false - }, - { - "date": "2014-02-08", - "isOffDay": false - } + { "date": "2014-01-31", "isOffDay": true }, + { "date": "2014-02-01", "isOffDay": true }, + { "date": "2014-02-02", "isOffDay": true }, + { "date": "2014-02-03", "isOffDay": true }, + { "date": "2014-02-04", "isOffDay": true }, + { "date": "2014-02-05", "isOffDay": true }, + { "date": "2014-02-06", "isOffDay": true }, + { "date": "2014-01-26", "isOffDay": false }, + { "date": "2014-02-08", "isOffDay": false } ] }, { "year": 2014, "description": "4月5日放假,4月7日(星期一)补休。", "expected": [ - { - "date": "2014-04-05", - "isOffDay": true - }, - { - "date": "2014-04-07", - "isOffDay": true - } + { "date": "2014-04-05", "isOffDay": true }, + { "date": "2014-04-07", "isOffDay": true } ] }, { @@ -408,388 +267,160 @@ "year": 2013, "description": "1月1日至3日放假调休,共3天。1月5日(星期六)、1月6日(星期日)上班。", "expected": [ - { - "date": "2013-01-01", - "isOffDay": true - }, - { - "date": "2013-01-02", - "isOffDay": true - }, - { - "date": "2013-01-03", - "isOffDay": true - }, - { - "date": "2013-01-05", - "isOffDay": false - }, - { - "date": "2013-01-06", - "isOffDay": false - } + { "date": "2013-01-01", "isOffDay": true }, + { "date": "2013-01-02", "isOffDay": true }, + { "date": "2013-01-03", "isOffDay": true }, + { "date": "2013-01-05", "isOffDay": false }, + { "date": "2013-01-06", "isOffDay": false } ] }, { "year": 2013, "description": "2月9日至15日放假调休,共7天。2月16日(星期六)、2月17日(星期日)上班。", "expected": [ - { - "date": "2013-02-09", - "isOffDay": true - }, - { - "date": "2013-02-10", - "isOffDay": true - }, - { - "date": "2013-02-11", - "isOffDay": true - }, - { - "date": "2013-02-12", - "isOffDay": true - }, - { - "date": "2013-02-13", - "isOffDay": true - }, - { - "date": "2013-02-14", - "isOffDay": true - }, - { - "date": "2013-02-15", - "isOffDay": true - }, - { - "date": "2013-02-16", - "isOffDay": false - }, - { - "date": "2013-02-17", - "isOffDay": false - } + { "date": "2013-02-09", "isOffDay": true }, + { "date": "2013-02-10", "isOffDay": true }, + { "date": "2013-02-11", "isOffDay": true }, + { "date": "2013-02-12", "isOffDay": true }, + { "date": "2013-02-13", "isOffDay": true }, + { "date": "2013-02-14", "isOffDay": true }, + { "date": "2013-02-15", "isOffDay": true }, + { "date": "2013-02-16", "isOffDay": false }, + { "date": "2013-02-17", "isOffDay": false } ] }, { "year": 2013, "description": "4月4日至6日放假调休,共3天。4月7日(星期日)上班。", "expected": [ - { - "date": "2013-04-04", - "isOffDay": true - }, - { - "date": "2013-04-05", - "isOffDay": true - }, - { - "date": "2013-04-06", - "isOffDay": true - }, - { - "date": "2013-04-07", - "isOffDay": false - } + { "date": "2013-04-04", "isOffDay": true }, + { "date": "2013-04-05", "isOffDay": true }, + { "date": "2013-04-06", "isOffDay": true }, + { "date": "2013-04-07", "isOffDay": false } ] }, { "year": 2013, "description": "4月29日至5月1日放假调休,共3天。4月27日(星期六)、4月28日(星期日)上班。", "expected": [ - { - "date": "2013-04-29", - "isOffDay": true - }, - { - "date": "2013-04-30", - "isOffDay": true - }, - { - "date": "2013-05-01", - "isOffDay": true - }, - { - "date": "2013-04-27", - "isOffDay": false - }, - { - "date": "2013-04-28", - "isOffDay": false - } + { "date": "2013-04-29", "isOffDay": true }, + { "date": "2013-04-30", "isOffDay": true }, + { "date": "2013-05-01", "isOffDay": true }, + { "date": "2013-04-27", "isOffDay": false }, + { "date": "2013-04-28", "isOffDay": false } ] }, { "year": 2013, "description": "6月10日至12日放假调休,共3天。6月8日(星期六)、6月9日(星期日)上班。", "expected": [ - { - "date": "2013-06-10", - "isOffDay": true - }, - { - "date": "2013-06-11", - "isOffDay": true - }, - { - "date": "2013-06-12", - "isOffDay": true - }, - { - "date": "2013-06-08", - "isOffDay": false - }, - { - "date": "2013-06-09", - "isOffDay": false - } + { "date": "2013-06-10", "isOffDay": true }, + { "date": "2013-06-11", "isOffDay": true }, + { "date": "2013-06-12", "isOffDay": true }, + { "date": "2013-06-08", "isOffDay": false }, + { "date": "2013-06-09", "isOffDay": false } ] }, { "year": 2013, "description": "9月19日至21日放假调休,共3天。9月22日(星期日)上班。", "expected": [ - { - "date": "2013-09-19", - "isOffDay": true - }, - { - "date": "2013-09-20", - "isOffDay": true - }, - { - "date": "2013-09-21", - "isOffDay": true - }, - { - "date": "2013-09-22", - "isOffDay": false - } + { "date": "2013-09-19", "isOffDay": true }, + { "date": "2013-09-20", "isOffDay": true }, + { "date": "2013-09-21", "isOffDay": true }, + { "date": "2013-09-22", "isOffDay": false } ] }, { "year": 2013, "description": "10月1日至7日放假调休,共7天。9月29日(星期日)、10月12日(星期六)上班。", "expected": [ - { - "date": "2013-10-01", - "isOffDay": true - }, - { - "date": "2013-10-02", - "isOffDay": true - }, - { - "date": "2013-10-03", - "isOffDay": true - }, - { - "date": "2013-10-04", - "isOffDay": true - }, - { - "date": "2013-10-05", - "isOffDay": true - }, - { - "date": "2013-10-06", - "isOffDay": true - }, - { - "date": "2013-10-07", - "isOffDay": true - }, - { - "date": "2013-09-29", - "isOffDay": false - }, - { - "date": "2013-10-12", - "isOffDay": false - } + { "date": "2013-10-01", "isOffDay": true }, + { "date": "2013-10-02", "isOffDay": true }, + { "date": "2013-10-03", "isOffDay": true }, + { "date": "2013-10-04", "isOffDay": true }, + { "date": "2013-10-05", "isOffDay": true }, + { "date": "2013-10-06", "isOffDay": true }, + { "date": "2013-10-07", "isOffDay": true }, + { "date": "2013-09-29", "isOffDay": false }, + { "date": "2013-10-12", "isOffDay": false } ] }, { "year": 2008, "description": "2007年12月30日—2008年1月1日放假,共3天。其中,1月1日(星期二)为法定节假日,12月30日(星期日)为公休日,12月29日(星期六)公休日调至12月31日(星期一),12月29日(星期六)上班。", "expected": [ - { - "date": "2007-12-30", - "isOffDay": true - }, - { - "date": "2007-12-31", - "isOffDay": true - }, - { - "date": "2008-01-01", - "isOffDay": true - }, - { - "date": "2007-12-29", - "isOffDay": false - } + { "date": "2007-12-30", "isOffDay": true }, + { "date": "2007-12-31", "isOffDay": true }, + { "date": "2008-01-01", "isOffDay": true }, + { "date": "2007-12-29", "isOffDay": false } ] }, { "year": 2008, "description": "2月6日—12日(农历除夕至正月初六)放假,共7天。其中,2月6日(除夕)、2月7日(春节)、2月8日(正月初二)为法定节假日,2月9日(星期六)、2月10日(星期日)照常公休,2月2日(星期六)、2月3日(星期日)两个公休日调至2月11日(星期一)、2月12日(星期二),2月2日(星期六)、2月3日(星期日)上班。", "expected": [ - { - "date": "2008-02-06", - "isOffDay": true - }, - { - "date": "2008-02-07", - "isOffDay": true - }, - { - "date": "2008-02-08", - "isOffDay": true - }, - { - "date": "2008-02-09", - "isOffDay": true - }, - { - "date": "2008-02-10", - "isOffDay": true - }, - { - "date": "2008-02-11", - "isOffDay": true - }, - { - "date": "2008-02-12", - "isOffDay": true - }, - { - "date": "2008-02-02", - "isOffDay": false - }, - { - "date": "2008-02-03", - "isOffDay": false - } + { "date": "2008-02-06", "isOffDay": true }, + { "date": "2008-02-07", "isOffDay": true }, + { "date": "2008-02-08", "isOffDay": true }, + { "date": "2008-02-09", "isOffDay": true }, + { "date": "2008-02-10", "isOffDay": true }, + { "date": "2008-02-11", "isOffDay": true }, + { "date": "2008-02-12", "isOffDay": true }, + { "date": "2008-02-02", "isOffDay": false }, + { "date": "2008-02-03", "isOffDay": false } ] }, { "year": 2008, "description": "4月4日—6日放假,共3天。其中,4月4日(清明节)为法定节假日,4月5日(星期六)、4月6日(星期日)照常公休。", "expected": [ - { - "date": "2008-04-04", - "isOffDay": true - }, - { - "date": "2008-04-05", - "isOffDay": true - }, - { - "date": "2008-04-06", - "isOffDay": true - } + { "date": "2008-04-04", "isOffDay": true }, + { "date": "2008-04-05", "isOffDay": true }, + { "date": "2008-04-06", "isOffDay": true } ] }, { "year": 2008, "description": "5月1日—3日放假,共3天。其中,5月1日为法定节假日,5月3日(星期六)为公休日,5月4日(星期日)公休日调至5月2日(星期五),5月4日(星期日)上班。", "expected": [ - { - "date": "2008-05-01", - "isOffDay": true - }, - { - "date": "2008-05-02", - "isOffDay": true - }, - { - "date": "2008-05-03", - "isOffDay": true - }, - { - "date": "2008-05-04", - "isOffDay": false - } + { "date": "2008-05-01", "isOffDay": true }, + { "date": "2008-05-02", "isOffDay": true }, + { "date": "2008-05-03", "isOffDay": true }, + { "date": "2008-05-04", "isOffDay": false } ] }, { "year": 2008, "description": "6月7日—9日放假,共3天。其中,6月7日(星期六)照常公休,6月8日(农历五月初五,端午节)为法定节假日,6月8日(星期日)公休日调至6月9日(星期一)。", "expected": [ - { - "date": "2008-06-07", - "isOffDay": true - }, - { - "date": "2008-06-08", - "isOffDay": true - }, - { - "date": "2008-06-09", - "isOffDay": true - } + { "date": "2008-06-07", "isOffDay": true }, + { "date": "2008-06-08", "isOffDay": true }, + { "date": "2008-06-09", "isOffDay": true } ] }, { "year": 2008, "description": "9月13日—15日放假,共3天。其中,9月13日(星期六)为公休日,9月14日(农历八月十五,中秋节)为法定节假日,9月14日(星期日)公休日调至9月15日(星期一)。", "expected": [ - { - "date": "2008-09-13", - "isOffDay": true - }, - { - "date": "2008-09-14", - "isOffDay": true - }, - { - "date": "2008-09-15", - "isOffDay": true - } + { "date": "2008-09-13", "isOffDay": true }, + { "date": "2008-09-14", "isOffDay": true }, + { "date": "2008-09-15", "isOffDay": true } ] }, { "year": 2008, "description": "9月29日—10月5日放假,共7天。其中,10月1日、2日、3日为法定节假日,9月27日(星期六)、9月28日(星期日)两个公休日调至9月29日(星期一)、30日(星期二),10月4日(星期六)、5日(星期日)照常公休。", "expected": [ - { - "date": "2008-09-29", - "isOffDay": true - }, - { - "date": "2008-09-30", - "isOffDay": true - }, - { - "date": "2008-10-01", - "isOffDay": true - }, - { - "date": "2008-10-02", - "isOffDay": true - }, - { - "date": "2008-10-03", - "isOffDay": true - }, - { - "date": "2008-10-04", - "isOffDay": true - }, - { - "date": "2008-10-05", - "isOffDay": true - }, - { - "date": "2008-09-27", - "isOffDay": false - }, - { - "date": "2008-09-28", - "isOffDay": false - } + { "date": "2008-09-29", "isOffDay": true }, + { "date": "2008-09-30", "isOffDay": true }, + { "date": "2008-10-01", "isOffDay": true }, + { "date": "2008-10-02", "isOffDay": true }, + { "date": "2008-10-03", "isOffDay": true }, + { "date": "2008-10-04", "isOffDay": true }, + { "date": "2008-10-05", "isOffDay": true }, + { "date": "2008-09-27", "isOffDay": false }, + { "date": "2008-09-28", "isOffDay": false } ] } ] diff --git a/fetch_holidays.py b/fetch_holidays.py old mode 100644 new mode 100755 index 601396a..47b2e26 --- a/fetch_holidays.py +++ b/fetch_holidays.py @@ -151,7 +151,7 @@ class SentenceParser: yield i def _parse_rest_1(self): - match = re.match(r'(.+)(放假|补休|调休)+(?:\d+天)?$', self.sentence) + match = re.match(r'(.+)(放假|补休|调休|公休)+(?:\d+天)?$', self.sentence) if match: for i in self.extract_dates(match.group(1)): yield { @@ -213,29 +213,38 @@ class DescriptionParser: raise NotImplementedError(self.description) +def fetch_holiday(year: int): + """Fetch holiday data. """ + + papers = get_paper_urls(year) + + days = [] + for i in papers: + paper = get_paper(i) + rules = get_rules(paper) + for name, description in rules: + days.extend({ + 'name': name, + **j + } for j in DescriptionParser(description).parse(year)) + + return { + 'year': year, + 'papers': papers, + 'days': sorted(days, key=lambda x: x['date']) + } + + def main(): parser = argparse.ArgumentParser() parser.add_argument('year', type=int) args = parser.parse_args() year = args.year - papers = get_paper_urls(year) - ret = [] - for i in papers: - paper = get_paper(i) - rules = get_rules(paper) - for name, description in rules: - ret.extend({ - 'name': name, - **j - } for j in DescriptionParser(description).parse(year)) - - result = { - 'year': year, - 'papers': papers, - 'days': sorted(ret, key=lambda x: x['date']) - } - print(json.dumps(result, indent=4, ensure_ascii=False, cls=CustomJSONEncoder)) + print(json.dumps(fetch_holiday(year), + indent=4, + ensure_ascii=False, + cls=CustomJSONEncoder)) class CustomJSONEncoder(json.JSONEncoder): diff --git a/update.py b/update.py new file mode 100755 index 0000000..1106ddd --- /dev/null +++ b/update.py @@ -0,0 +1,65 @@ +#!/usr/bin/env python3 +import json +import os +import subprocess +from datetime import datetime, timedelta, tzinfo + +from fetch_holidays import CustomJSONEncoder, fetch_holiday + + +class ChinaTimezone(tzinfo): + """Timezone of china. """ + + def tzname(self, dt): + return 'UTC+8' + + def utcoffset(self, dt): + return timedelta(hours=8) + + def dst(self, dt): + return timedelta() + + +__dirname__ = os.path.abspath(os.path.dirname(__file__)) + + +def _file_path(*other): + + return os.path.join(__dirname__, *other) + + +def update_data(year): + filename = _file_path(f'{year}.json') + with open(filename, 'w', encoding='utf-8', newline='\n') as f: + json.dump(fetch_holiday(year), f, + indent=4, + ensure_ascii=False, + cls=CustomJSONEncoder) + return filename + + +def main(): + now = datetime.now(ChinaTimezone()) + + filenames = [] + filenames.append(update_data(now.year)) + filenames.append(update_data(now.year + 1)) + + subprocess.run(['git', 'add', *filenames], check=True) + diff = subprocess.run(['git', 'diff', '--stat', '--cached'], + check=True, + stdout=subprocess.PIPE, + encoding='utf-8').stdout + if not diff: + print('Already up to date.') + return + + subprocess.run( + ['git', 'commit', '-m', 'Update data [skip ci]\n\n' + diff], check=True) + subprocess.run(['git', 'tag', now.strftime('%Y.%m.%d')], check=True) + subprocess.run(['git', 'push'], check=True) + subprocess.run(['git', 'push', '--tags'], check=True) + + +if __name__ == '__main__': + main()