1
0
mirror of https://github.com/hanxi/xiaomusic.git synced 2025-12-05 14:42:50 +08:00

feat: 定时任务支持工作日和休息日 see #182

This commit is contained in:
涵曦
2025-05-21 22:56:35 +08:00
parent 4949964130
commit 10c60faee1
27 changed files with 3581 additions and 3 deletions

170
holiday/2007.json Normal file
View File

@@ -0,0 +1,170 @@
{
"$schema": "https://raw.githubusercontent.com/NateScarlet/holiday-cn/master/schema.json",
"$id": "https://raw.githubusercontent.com/NateScarlet/holiday-cn/master/2007.json",
"year": 2007,
"papers": [
"http://www.gov.cn/zhengce/zhengceku/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-17",
"isOffDay": false
},
{
"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-02-25",
"isOffDay": false
},
{
"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
}
]
}

185
holiday/2008.json Normal file
View File

@@ -0,0 +1,185 @@
{
"$schema": "https://raw.githubusercontent.com/NateScarlet/holiday-cn/master/schema.json",
"$id": "https://raw.githubusercontent.com/NateScarlet/holiday-cn/master/2008.json",
"year": 2008,
"papers": [
"http://www.gov.cn/zhengce/zhengceku/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
}
]
}

175
holiday/2009.json Normal file
View File

@@ -0,0 +1,175 @@
{
"$schema": "https://raw.githubusercontent.com/NateScarlet/holiday-cn/master/schema.json",
"$id": "https://raw.githubusercontent.com/NateScarlet/holiday-cn/master/2009.json",
"year": 2009,
"papers": [
"http://www.gov.cn/zhengce/zhengceku/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
}
]
}

195
holiday/2010.json Normal file
View File

@@ -0,0 +1,195 @@
{
"$schema": "https://raw.githubusercontent.com/NateScarlet/holiday-cn/master/schema.json",
"$id": "https://raw.githubusercontent.com/NateScarlet/holiday-cn/master/2010.json",
"year": 2010,
"papers": [
"http://www.gov.cn/zhengce/zhengceku/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
}
]
}

180
holiday/2011.json Normal file
View File

@@ -0,0 +1,180 @@
{
"$schema": "https://raw.githubusercontent.com/NateScarlet/holiday-cn/master/schema.json",
"$id": "https://raw.githubusercontent.com/NateScarlet/holiday-cn/master/2011.json",
"year": 2011,
"papers": [
"http://www.gov.cn/zhengce/zhengceku/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-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": "春节",
"date": "2011-02-08",
"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
}
]
}

180
holiday/2012.json Normal file
View File

@@ -0,0 +1,180 @@
{
"$schema": "https://raw.githubusercontent.com/NateScarlet/holiday-cn/master/schema.json",
"$id": "https://raw.githubusercontent.com/NateScarlet/holiday-cn/master/2012.json",
"year": 2012,
"papers": [
"http://www.gov.cn/zhengce/zhengceku/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
}
]
}

215
holiday/2013.json Normal file
View File

@@ -0,0 +1,215 @@
{
"$schema": "https://raw.githubusercontent.com/NateScarlet/holiday-cn/master/schema.json",
"$id": "https://raw.githubusercontent.com/NateScarlet/holiday-cn/master/2013.json",
"year": 2013,
"papers": [
"http://www.gov.cn/zhengce/zhengceku/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
}
]
}

145
holiday/2014.json Normal file
View File

@@ -0,0 +1,145 @@
{
"$schema": "https://raw.githubusercontent.com/NateScarlet/holiday-cn/master/schema.json",
"$id": "https://raw.githubusercontent.com/NateScarlet/holiday-cn/master/2014.json",
"year": 2014,
"papers": [
"http://www.gov.cn/zhengce/zhengceku/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
}
]
}

166
holiday/2015.json Normal file
View File

@@ -0,0 +1,166 @@
{
"$schema": "https://raw.githubusercontent.com/NateScarlet/holiday-cn/master/schema.json",
"$id": "https://raw.githubusercontent.com/NateScarlet/holiday-cn/master/2015.json",
"year": 2015,
"papers": [
"http://www.gov.cn/zhengce/zhengceku/2014-12/16/content_9302.htm",
"http://www.gov.cn/zhengce/zhengceku/2015-05/13/content_9742.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": "抗日战争暨世界反法西斯战争胜利70周年纪念日",
"date": "2015-09-03",
"isOffDay": true
},
{
"name": "抗日战争暨世界反法西斯战争胜利70周年纪念日",
"date": "2015-09-04",
"isOffDay": true
},
{
"name": "抗日战争暨世界反法西斯战争胜利70周年纪念日",
"date": "2015-09-05",
"isOffDay": true
},
{
"name": "抗日战争暨世界反法西斯战争胜利70周年纪念日",
"date": "2015-09-06",
"isOffDay": false
},
{
"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
}
]
}

160
holiday/2016.json Normal file
View File

@@ -0,0 +1,160 @@
{
"$schema": "https://raw.githubusercontent.com/NateScarlet/holiday-cn/master/schema.json",
"$id": "https://raw.githubusercontent.com/NateScarlet/holiday-cn/master/2016.json",
"year": 2016,
"papers": [
"http://www.gov.cn/zhengce/zhengceku/2015-12/10/content_10394.htm"
],
"days": [
{
"name": "元旦",
"date": "2016-01-01",
"isOffDay": true
},
{
"name": "春节",
"date": "2016-02-06",
"isOffDay": false
},
{
"name": "春节",
"date": "2016-02-07",
"isOffDay": true
},
{
"name": "春节",
"date": "2016-02-08",
"isOffDay": true
},
{
"name": "春节",
"date": "2016-02-09",
"isOffDay": true
},
{
"name": "春节",
"date": "2016-02-10",
"isOffDay": true
},
{
"name": "春节",
"date": "2016-02-11",
"isOffDay": true
},
{
"name": "春节",
"date": "2016-02-12",
"isOffDay": true
},
{
"name": "春节",
"date": "2016-02-13",
"isOffDay": true
},
{
"name": "春节",
"date": "2016-02-14",
"isOffDay": false
},
{
"name": "清明节",
"date": "2016-04-04",
"isOffDay": true
},
{
"name": "劳动节",
"date": "2016-05-01",
"isOffDay": true
},
{
"name": "劳动节",
"date": "2016-05-02",
"isOffDay": true
},
{
"name": "端午节",
"date": "2016-06-09",
"isOffDay": true
},
{
"name": "端午节",
"date": "2016-06-10",
"isOffDay": true
},
{
"name": "端午节",
"date": "2016-06-11",
"isOffDay": true
},
{
"name": "端午节",
"date": "2016-06-12",
"isOffDay": false
},
{
"name": "中秋节",
"date": "2016-09-15",
"isOffDay": true
},
{
"name": "中秋节",
"date": "2016-09-16",
"isOffDay": true
},
{
"name": "中秋节",
"date": "2016-09-17",
"isOffDay": true
},
{
"name": "中秋节",
"date": "2016-09-18",
"isOffDay": false
},
{
"name": "国庆节",
"date": "2016-10-01",
"isOffDay": true
},
{
"name": "国庆节",
"date": "2016-10-02",
"isOffDay": true
},
{
"name": "国庆节",
"date": "2016-10-03",
"isOffDay": true
},
{
"name": "国庆节",
"date": "2016-10-04",
"isOffDay": true
},
{
"name": "国庆节",
"date": "2016-10-05",
"isOffDay": true
},
{
"name": "国庆节",
"date": "2016-10-06",
"isOffDay": true
},
{
"name": "国庆节",
"date": "2016-10-07",
"isOffDay": true
},
{
"name": "国庆节",
"date": "2016-10-08",
"isOffDay": false
},
{
"name": "国庆节",
"date": "2016-10-09",
"isOffDay": false
}
]
}

155
holiday/2017.json Normal file
View File

@@ -0,0 +1,155 @@
{
"$schema": "https://raw.githubusercontent.com/NateScarlet/holiday-cn/master/schema.json",
"$id": "https://raw.githubusercontent.com/NateScarlet/holiday-cn/master/2017.json",
"year": 2017,
"papers": [
"http://www.gov.cn/zhengce/zhengceku/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
}
]
}

155
holiday/2018.json Normal file
View File

@@ -0,0 +1,155 @@
{
"$schema": "https://raw.githubusercontent.com/NateScarlet/holiday-cn/master/schema.json",
"$id": "https://raw.githubusercontent.com/NateScarlet/holiday-cn/master/2018.json",
"year": 2018,
"papers": [
"http://www.gov.cn/zhengce/zhengceku/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
}
]
}

166
holiday/2019.json Normal file
View File

@@ -0,0 +1,166 @@
{
"$schema": "https://raw.githubusercontent.com/NateScarlet/holiday-cn/master/schema.json",
"$id": "https://raw.githubusercontent.com/NateScarlet/holiday-cn/master/2019.json",
"year": 2019,
"papers": [
"http://www.gov.cn/zhengce/zhengceku/2018-12/06/content_5346276.htm",
"http://www.gov.cn/zhengce/zhengceku/2019-03/22/content_5375877.htm"
],
"days": [
{
"name": "元旦",
"date": "2018-12-29",
"isOffDay": false
},
{
"name": "元旦",
"date": "2018-12-30",
"isOffDay": true
},
{
"name": "元旦",
"date": "2018-12-31",
"isOffDay": true
},
{
"name": "元旦",
"date": "2019-01-01",
"isOffDay": true
},
{
"name": "春节",
"date": "2019-02-02",
"isOffDay": false
},
{
"name": "春节",
"date": "2019-02-03",
"isOffDay": false
},
{
"name": "春节",
"date": "2019-02-04",
"isOffDay": true
},
{
"name": "春节",
"date": "2019-02-05",
"isOffDay": true
},
{
"name": "春节",
"date": "2019-02-06",
"isOffDay": true
},
{
"name": "春节",
"date": "2019-02-07",
"isOffDay": true
},
{
"name": "春节",
"date": "2019-02-08",
"isOffDay": true
},
{
"name": "春节",
"date": "2019-02-09",
"isOffDay": true
},
{
"name": "春节",
"date": "2019-02-10",
"isOffDay": true
},
{
"name": "清明节",
"date": "2019-04-05",
"isOffDay": true
},
{
"name": "劳动节",
"date": "2019-04-28",
"isOffDay": false
},
{
"name": "劳动节",
"date": "2019-05-01",
"isOffDay": true
},
{
"name": "劳动节",
"date": "2019-05-02",
"isOffDay": true
},
{
"name": "劳动节",
"date": "2019-05-03",
"isOffDay": true
},
{
"name": "劳动节",
"date": "2019-05-04",
"isOffDay": true
},
{
"name": "劳动节",
"date": "2019-05-05",
"isOffDay": false
},
{
"name": "端午节",
"date": "2019-06-07",
"isOffDay": true
},
{
"name": "中秋节",
"date": "2019-09-13",
"isOffDay": true
},
{
"name": "国庆节",
"date": "2019-09-29",
"isOffDay": false
},
{
"name": "国庆节",
"date": "2019-10-01",
"isOffDay": true
},
{
"name": "国庆节",
"date": "2019-10-02",
"isOffDay": true
},
{
"name": "国庆节",
"date": "2019-10-03",
"isOffDay": true
},
{
"name": "国庆节",
"date": "2019-10-04",
"isOffDay": true
},
{
"name": "国庆节",
"date": "2019-10-05",
"isOffDay": true
},
{
"name": "国庆节",
"date": "2019-10-06",
"isOffDay": true
},
{
"name": "国庆节",
"date": "2019-10-07",
"isOffDay": true
},
{
"name": "国庆节",
"date": "2019-10-12",
"isOffDay": false
}
]
}

196
holiday/2020.json Normal file
View File

@@ -0,0 +1,196 @@
{
"$schema": "https://raw.githubusercontent.com/NateScarlet/holiday-cn/master/schema.json",
"$id": "https://raw.githubusercontent.com/NateScarlet/holiday-cn/master/2020.json",
"year": 2020,
"papers": [
"http://www.gov.cn/zhengce/zhengceku/2019-11/21/content_5454164.htm",
"http://www.gov.cn/zhengce/zhengceku/2020-01/27/content_5472352.htm"
],
"days": [
{
"name": "元旦",
"date": "2020-01-01",
"isOffDay": true
},
{
"name": "春节",
"date": "2020-01-19",
"isOffDay": false
},
{
"name": "春节",
"date": "2020-01-24",
"isOffDay": true
},
{
"name": "春节",
"date": "2020-01-25",
"isOffDay": true
},
{
"name": "春节",
"date": "2020-01-26",
"isOffDay": true
},
{
"name": "春节",
"date": "2020-01-27",
"isOffDay": true
},
{
"name": "春节",
"date": "2020-01-28",
"isOffDay": true
},
{
"name": "春节",
"date": "2020-01-29",
"isOffDay": true
},
{
"name": "春节",
"date": "2020-01-30",
"isOffDay": true
},
{
"name": "春节",
"date": "2020-01-31",
"isOffDay": true
},
{
"name": "春节",
"date": "2020-02-01",
"isOffDay": true
},
{
"name": "春节",
"date": "2020-02-02",
"isOffDay": true
},
{
"name": "春节",
"date": "2020-02-03",
"isOffDay": false
},
{
"name": "清明节",
"date": "2020-04-04",
"isOffDay": true
},
{
"name": "清明节",
"date": "2020-04-05",
"isOffDay": true
},
{
"name": "清明节",
"date": "2020-04-06",
"isOffDay": true
},
{
"name": "劳动节",
"date": "2020-04-26",
"isOffDay": false
},
{
"name": "劳动节",
"date": "2020-05-01",
"isOffDay": true
},
{
"name": "劳动节",
"date": "2020-05-02",
"isOffDay": true
},
{
"name": "劳动节",
"date": "2020-05-03",
"isOffDay": true
},
{
"name": "劳动节",
"date": "2020-05-04",
"isOffDay": true
},
{
"name": "劳动节",
"date": "2020-05-05",
"isOffDay": true
},
{
"name": "劳动节",
"date": "2020-05-09",
"isOffDay": false
},
{
"name": "端午节",
"date": "2020-06-25",
"isOffDay": true
},
{
"name": "端午节",
"date": "2020-06-26",
"isOffDay": true
},
{
"name": "端午节",
"date": "2020-06-27",
"isOffDay": true
},
{
"name": "端午节",
"date": "2020-06-28",
"isOffDay": false
},
{
"name": "国庆节、中秋节",
"date": "2020-09-27",
"isOffDay": false
},
{
"name": "国庆节、中秋节",
"date": "2020-10-01",
"isOffDay": true
},
{
"name": "国庆节、中秋节",
"date": "2020-10-02",
"isOffDay": true
},
{
"name": "国庆节、中秋节",
"date": "2020-10-03",
"isOffDay": true
},
{
"name": "国庆节、中秋节",
"date": "2020-10-04",
"isOffDay": true
},
{
"name": "国庆节、中秋节",
"date": "2020-10-05",
"isOffDay": true
},
{
"name": "国庆节、中秋节",
"date": "2020-10-06",
"isOffDay": true
},
{
"name": "国庆节、中秋节",
"date": "2020-10-07",
"isOffDay": true
},
{
"name": "国庆节、中秋节",
"date": "2020-10-08",
"isOffDay": true
},
{
"name": "国庆节、中秋节",
"date": "2020-10-10",
"isOffDay": false
}
]
}

200
holiday/2021.json Normal file
View File

@@ -0,0 +1,200 @@
{
"$schema": "https://raw.githubusercontent.com/NateScarlet/holiday-cn/master/schema.json",
"$id": "https://raw.githubusercontent.com/NateScarlet/holiday-cn/master/2021.json",
"year": 2021,
"papers": [
"http://www.gov.cn/zhengce/zhengceku/2020-11/25/content_5564127.htm"
],
"days": [
{
"name": "元旦",
"date": "2021-01-01",
"isOffDay": true
},
{
"name": "元旦",
"date": "2021-01-02",
"isOffDay": true
},
{
"name": "元旦",
"date": "2021-01-03",
"isOffDay": true
},
{
"name": "春节",
"date": "2021-02-07",
"isOffDay": false
},
{
"name": "春节",
"date": "2021-02-11",
"isOffDay": true
},
{
"name": "春节",
"date": "2021-02-12",
"isOffDay": true
},
{
"name": "春节",
"date": "2021-02-13",
"isOffDay": true
},
{
"name": "春节",
"date": "2021-02-14",
"isOffDay": true
},
{
"name": "春节",
"date": "2021-02-15",
"isOffDay": true
},
{
"name": "春节",
"date": "2021-02-16",
"isOffDay": true
},
{
"name": "春节",
"date": "2021-02-17",
"isOffDay": true
},
{
"name": "春节",
"date": "2021-02-20",
"isOffDay": false
},
{
"name": "清明节",
"date": "2021-04-03",
"isOffDay": true
},
{
"name": "清明节",
"date": "2021-04-04",
"isOffDay": true
},
{
"name": "清明节",
"date": "2021-04-05",
"isOffDay": true
},
{
"name": "劳动节",
"date": "2021-04-25",
"isOffDay": false
},
{
"name": "劳动节",
"date": "2021-05-01",
"isOffDay": true
},
{
"name": "劳动节",
"date": "2021-05-02",
"isOffDay": true
},
{
"name": "劳动节",
"date": "2021-05-03",
"isOffDay": true
},
{
"name": "劳动节",
"date": "2021-05-04",
"isOffDay": true
},
{
"name": "劳动节",
"date": "2021-05-05",
"isOffDay": true
},
{
"name": "劳动节",
"date": "2021-05-08",
"isOffDay": false
},
{
"name": "端午节",
"date": "2021-06-12",
"isOffDay": true
},
{
"name": "端午节",
"date": "2021-06-13",
"isOffDay": true
},
{
"name": "端午节",
"date": "2021-06-14",
"isOffDay": true
},
{
"name": "中秋节",
"date": "2021-09-18",
"isOffDay": false
},
{
"name": "中秋节",
"date": "2021-09-19",
"isOffDay": true
},
{
"name": "中秋节",
"date": "2021-09-20",
"isOffDay": true
},
{
"name": "中秋节",
"date": "2021-09-21",
"isOffDay": true
},
{
"name": "国庆节",
"date": "2021-09-26",
"isOffDay": false
},
{
"name": "国庆节",
"date": "2021-10-01",
"isOffDay": true
},
{
"name": "国庆节",
"date": "2021-10-02",
"isOffDay": true
},
{
"name": "国庆节",
"date": "2021-10-03",
"isOffDay": true
},
{
"name": "国庆节",
"date": "2021-10-04",
"isOffDay": true
},
{
"name": "国庆节",
"date": "2021-10-05",
"isOffDay": true
},
{
"name": "国庆节",
"date": "2021-10-06",
"isOffDay": true
},
{
"name": "国庆节",
"date": "2021-10-07",
"isOffDay": true
},
{
"name": "国庆节",
"date": "2021-10-09",
"isOffDay": false
}
]
}

200
holiday/2022.json Normal file
View File

@@ -0,0 +1,200 @@
{
"$schema": "https://raw.githubusercontent.com/NateScarlet/holiday-cn/master/schema.json",
"$id": "https://raw.githubusercontent.com/NateScarlet/holiday-cn/master/2022.json",
"year": 2022,
"papers": [
"http://www.gov.cn/zhengce/zhengceku/2021-10/25/content_5644835.htm"
],
"days": [
{
"name": "元旦",
"date": "2022-01-01",
"isOffDay": true
},
{
"name": "元旦",
"date": "2022-01-02",
"isOffDay": true
},
{
"name": "元旦",
"date": "2022-01-03",
"isOffDay": true
},
{
"name": "春节",
"date": "2022-01-29",
"isOffDay": false
},
{
"name": "春节",
"date": "2022-01-30",
"isOffDay": false
},
{
"name": "春节",
"date": "2022-01-31",
"isOffDay": true
},
{
"name": "春节",
"date": "2022-02-01",
"isOffDay": true
},
{
"name": "春节",
"date": "2022-02-02",
"isOffDay": true
},
{
"name": "春节",
"date": "2022-02-03",
"isOffDay": true
},
{
"name": "春节",
"date": "2022-02-04",
"isOffDay": true
},
{
"name": "春节",
"date": "2022-02-05",
"isOffDay": true
},
{
"name": "春节",
"date": "2022-02-06",
"isOffDay": true
},
{
"name": "清明节",
"date": "2022-04-02",
"isOffDay": false
},
{
"name": "清明节",
"date": "2022-04-03",
"isOffDay": true
},
{
"name": "清明节",
"date": "2022-04-04",
"isOffDay": true
},
{
"name": "清明节",
"date": "2022-04-05",
"isOffDay": true
},
{
"name": "劳动节",
"date": "2022-04-24",
"isOffDay": false
},
{
"name": "劳动节",
"date": "2022-04-30",
"isOffDay": true
},
{
"name": "劳动节",
"date": "2022-05-01",
"isOffDay": true
},
{
"name": "劳动节",
"date": "2022-05-02",
"isOffDay": true
},
{
"name": "劳动节",
"date": "2022-05-03",
"isOffDay": true
},
{
"name": "劳动节",
"date": "2022-05-04",
"isOffDay": true
},
{
"name": "劳动节",
"date": "2022-05-07",
"isOffDay": false
},
{
"name": "端午节",
"date": "2022-06-03",
"isOffDay": true
},
{
"name": "端午节",
"date": "2022-06-04",
"isOffDay": true
},
{
"name": "端午节",
"date": "2022-06-05",
"isOffDay": true
},
{
"name": "中秋节",
"date": "2022-09-10",
"isOffDay": true
},
{
"name": "中秋节",
"date": "2022-09-11",
"isOffDay": true
},
{
"name": "中秋节",
"date": "2022-09-12",
"isOffDay": true
},
{
"name": "国庆节",
"date": "2022-10-01",
"isOffDay": true
},
{
"name": "国庆节",
"date": "2022-10-02",
"isOffDay": true
},
{
"name": "国庆节",
"date": "2022-10-03",
"isOffDay": true
},
{
"name": "国庆节",
"date": "2022-10-04",
"isOffDay": true
},
{
"name": "国庆节",
"date": "2022-10-05",
"isOffDay": true
},
{
"name": "国庆节",
"date": "2022-10-06",
"isOffDay": true
},
{
"name": "国庆节",
"date": "2022-10-07",
"isOffDay": true
},
{
"name": "国庆节",
"date": "2022-10-08",
"isOffDay": false
},
{
"name": "国庆节",
"date": "2022-10-09",
"isOffDay": false
}
]
}

180
holiday/2023.json Normal file
View File

@@ -0,0 +1,180 @@
{
"$schema": "https://raw.githubusercontent.com/NateScarlet/holiday-cn/master/schema.json",
"$id": "https://raw.githubusercontent.com/NateScarlet/holiday-cn/master/2023.json",
"year": 2023,
"papers": [
"http://www.gov.cn/zhengce/zhengceku/2022-12/08/content_5730844.htm"
],
"days": [
{
"name": "元旦",
"date": "2022-12-31",
"isOffDay": true
},
{
"name": "元旦",
"date": "2023-01-01",
"isOffDay": true
},
{
"name": "元旦",
"date": "2023-01-02",
"isOffDay": true
},
{
"name": "春节",
"date": "2023-01-21",
"isOffDay": true
},
{
"name": "春节",
"date": "2023-01-22",
"isOffDay": true
},
{
"name": "春节",
"date": "2023-01-23",
"isOffDay": true
},
{
"name": "春节",
"date": "2023-01-24",
"isOffDay": true
},
{
"name": "春节",
"date": "2023-01-25",
"isOffDay": true
},
{
"name": "春节",
"date": "2023-01-26",
"isOffDay": true
},
{
"name": "春节",
"date": "2023-01-27",
"isOffDay": true
},
{
"name": "春节",
"date": "2023-01-28",
"isOffDay": false
},
{
"name": "春节",
"date": "2023-01-29",
"isOffDay": false
},
{
"name": "清明节",
"date": "2023-04-05",
"isOffDay": true
},
{
"name": "劳动节",
"date": "2023-04-23",
"isOffDay": false
},
{
"name": "劳动节",
"date": "2023-04-29",
"isOffDay": true
},
{
"name": "劳动节",
"date": "2023-04-30",
"isOffDay": true
},
{
"name": "劳动节",
"date": "2023-05-01",
"isOffDay": true
},
{
"name": "劳动节",
"date": "2023-05-02",
"isOffDay": true
},
{
"name": "劳动节",
"date": "2023-05-03",
"isOffDay": true
},
{
"name": "劳动节",
"date": "2023-05-06",
"isOffDay": false
},
{
"name": "端午节",
"date": "2023-06-22",
"isOffDay": true
},
{
"name": "端午节",
"date": "2023-06-23",
"isOffDay": true
},
{
"name": "端午节",
"date": "2023-06-24",
"isOffDay": true
},
{
"name": "端午节",
"date": "2023-06-25",
"isOffDay": false
},
{
"name": "中秋节、国庆节",
"date": "2023-09-29",
"isOffDay": true
},
{
"name": "中秋节、国庆节",
"date": "2023-09-30",
"isOffDay": true
},
{
"name": "中秋节、国庆节",
"date": "2023-10-01",
"isOffDay": true
},
{
"name": "中秋节、国庆节",
"date": "2023-10-02",
"isOffDay": true
},
{
"name": "中秋节、国庆节",
"date": "2023-10-03",
"isOffDay": true
},
{
"name": "中秋节、国庆节",
"date": "2023-10-04",
"isOffDay": true
},
{
"name": "中秋节、国庆节",
"date": "2023-10-05",
"isOffDay": true
},
{
"name": "中秋节、国庆节",
"date": "2023-10-06",
"isOffDay": true
},
{
"name": "中秋节、国庆节",
"date": "2023-10-07",
"isOffDay": false
},
{
"name": "中秋节、国庆节",
"date": "2023-10-08",
"isOffDay": false
}
]
}

190
holiday/2024.json Normal file
View File

@@ -0,0 +1,190 @@
{
"$schema": "https://raw.githubusercontent.com/NateScarlet/holiday-cn/master/schema.json",
"$id": "https://raw.githubusercontent.com/NateScarlet/holiday-cn/master/2024.json",
"year": 2024,
"papers": [
"https://www.gov.cn/zhengce/zhengceku/202310/content_6911528.htm"
],
"days": [
{
"name": "元旦",
"date": "2024-01-01",
"isOffDay": true
},
{
"name": "春节",
"date": "2024-02-04",
"isOffDay": false
},
{
"name": "春节",
"date": "2024-02-10",
"isOffDay": true
},
{
"name": "春节",
"date": "2024-02-11",
"isOffDay": true
},
{
"name": "春节",
"date": "2024-02-12",
"isOffDay": true
},
{
"name": "春节",
"date": "2024-02-13",
"isOffDay": true
},
{
"name": "春节",
"date": "2024-02-14",
"isOffDay": true
},
{
"name": "春节",
"date": "2024-02-15",
"isOffDay": true
},
{
"name": "春节",
"date": "2024-02-16",
"isOffDay": true
},
{
"name": "春节",
"date": "2024-02-17",
"isOffDay": true
},
{
"name": "春节",
"date": "2024-02-18",
"isOffDay": false
},
{
"name": "清明节",
"date": "2024-04-04",
"isOffDay": true
},
{
"name": "清明节",
"date": "2024-04-05",
"isOffDay": true
},
{
"name": "清明节",
"date": "2024-04-06",
"isOffDay": true
},
{
"name": "清明节",
"date": "2024-04-07",
"isOffDay": false
},
{
"name": "劳动节",
"date": "2024-04-28",
"isOffDay": false
},
{
"name": "劳动节",
"date": "2024-05-01",
"isOffDay": true
},
{
"name": "劳动节",
"date": "2024-05-02",
"isOffDay": true
},
{
"name": "劳动节",
"date": "2024-05-03",
"isOffDay": true
},
{
"name": "劳动节",
"date": "2024-05-04",
"isOffDay": true
},
{
"name": "劳动节",
"date": "2024-05-05",
"isOffDay": true
},
{
"name": "劳动节",
"date": "2024-05-11",
"isOffDay": false
},
{
"name": "端午节",
"date": "2024-06-10",
"isOffDay": true
},
{
"name": "中秋节",
"date": "2024-09-14",
"isOffDay": false
},
{
"name": "中秋节",
"date": "2024-09-15",
"isOffDay": true
},
{
"name": "中秋节",
"date": "2024-09-16",
"isOffDay": true
},
{
"name": "中秋节",
"date": "2024-09-17",
"isOffDay": true
},
{
"name": "国庆节",
"date": "2024-09-29",
"isOffDay": false
},
{
"name": "国庆节",
"date": "2024-10-01",
"isOffDay": true
},
{
"name": "国庆节",
"date": "2024-10-02",
"isOffDay": true
},
{
"name": "国庆节",
"date": "2024-10-03",
"isOffDay": true
},
{
"name": "国庆节",
"date": "2024-10-04",
"isOffDay": true
},
{
"name": "国庆节",
"date": "2024-10-05",
"isOffDay": true
},
{
"name": "国庆节",
"date": "2024-10-06",
"isOffDay": true
},
{
"name": "国庆节",
"date": "2024-10-07",
"isOffDay": true
},
{
"name": "国庆节",
"date": "2024-10-12",
"isOffDay": false
}
]
}

175
holiday/2025.json Normal file
View File

@@ -0,0 +1,175 @@
{
"$schema": "https://raw.githubusercontent.com/NateScarlet/holiday-cn/master/schema.json",
"$id": "https://raw.githubusercontent.com/NateScarlet/holiday-cn/master/2025.json",
"year": 2025,
"papers": [
"https://www.gov.cn/zhengce/zhengceku/202411/content_6986383.htm"
],
"days": [
{
"name": "元旦",
"date": "2025-01-01",
"isOffDay": true
},
{
"name": "春节",
"date": "2025-01-26",
"isOffDay": false
},
{
"name": "春节",
"date": "2025-01-28",
"isOffDay": true
},
{
"name": "春节",
"date": "2025-01-29",
"isOffDay": true
},
{
"name": "春节",
"date": "2025-01-30",
"isOffDay": true
},
{
"name": "春节",
"date": "2025-01-31",
"isOffDay": true
},
{
"name": "春节",
"date": "2025-02-01",
"isOffDay": true
},
{
"name": "春节",
"date": "2025-02-02",
"isOffDay": true
},
{
"name": "春节",
"date": "2025-02-03",
"isOffDay": true
},
{
"name": "春节",
"date": "2025-02-04",
"isOffDay": true
},
{
"name": "春节",
"date": "2025-02-08",
"isOffDay": false
},
{
"name": "清明节",
"date": "2025-04-04",
"isOffDay": true
},
{
"name": "清明节",
"date": "2025-04-05",
"isOffDay": true
},
{
"name": "清明节",
"date": "2025-04-06",
"isOffDay": true
},
{
"name": "劳动节",
"date": "2025-04-27",
"isOffDay": false
},
{
"name": "劳动节",
"date": "2025-05-01",
"isOffDay": true
},
{
"name": "劳动节",
"date": "2025-05-02",
"isOffDay": true
},
{
"name": "劳动节",
"date": "2025-05-03",
"isOffDay": true
},
{
"name": "劳动节",
"date": "2025-05-04",
"isOffDay": true
},
{
"name": "劳动节",
"date": "2025-05-05",
"isOffDay": true
},
{
"name": "端午节",
"date": "2025-05-31",
"isOffDay": true
},
{
"name": "端午节",
"date": "2025-06-01",
"isOffDay": true
},
{
"name": "端午节",
"date": "2025-06-02",
"isOffDay": true
},
{
"name": "国庆节、中秋节",
"date": "2025-09-28",
"isOffDay": false
},
{
"name": "国庆节、中秋节",
"date": "2025-10-01",
"isOffDay": true
},
{
"name": "国庆节、中秋节",
"date": "2025-10-02",
"isOffDay": true
},
{
"name": "国庆节、中秋节",
"date": "2025-10-03",
"isOffDay": true
},
{
"name": "国庆节、中秋节",
"date": "2025-10-04",
"isOffDay": true
},
{
"name": "国庆节、中秋节",
"date": "2025-10-05",
"isOffDay": true
},
{
"name": "国庆节、中秋节",
"date": "2025-10-06",
"isOffDay": true
},
{
"name": "国庆节、中秋节",
"date": "2025-10-07",
"isOffDay": true
},
{
"name": "国庆节、中秋节",
"date": "2025-10-08",
"isOffDay": true
},
{
"name": "国庆节、中秋节",
"date": "2025-10-11",
"isOffDay": false
}
]
}

7
holiday/2026.json Normal file
View File

@@ -0,0 +1,7 @@
{
"$schema": "https://raw.githubusercontent.com/NateScarlet/holiday-cn/master/schema.json",
"$id": "https://raw.githubusercontent.com/NateScarlet/holiday-cn/master/2026.json",
"year": 2026,
"papers": [],
"days": []
}

7
holiday/renovate.json Normal file
View File

@@ -0,0 +1,7 @@
{
"extends": [
"config:best-practices",
":automergeMinor",
":disableDependencyDashboard"
]
}

29
holiday/schema.json Normal file
View File

@@ -0,0 +1,29 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://raw.githubusercontent.com/NateScarlet/holiday-cn/master/schema.json",
"type": "object",
"properties": {
"year": {
"type": "number",
"description": "年份"
},
"papers": {
"type": "array",
"items": { "type": "string" },
"description": "所用国务院文件网址列表"
},
"days": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": { "type": "string", "description": "节日名称" },
"date": { "type": "string", "description": "ISO 8601 日期" },
"isOffDay": { "type": "boolean", "description": "是否为休息日" }
},
"required": ["name", "date", "isOffDay"]
}
}
},
"required": ["year", "papers", "days"]
}

View File

@@ -1,6 +1,7 @@
#!/bin/bash
./update-static-version.py
./update-holiday.sh
git add xiaomusic/static
git commit -m 'build: update static version'

View File

@@ -1,6 +1,7 @@
#!/bin/bash
./update-static-version.py
./update-holiday.sh
git add xiaomusic/static
git commit -m 'build: update static version'

7
update-holiday.sh Executable file
View File

@@ -0,0 +1,7 @@
#!/bin/bash
rm -rf holiday-cn
git clone https://github.com/NateScarlet/holiday-cn.git
mkdir -p holiday
cp holiday-cn/*.json holiday/
rm -rf holiday-cn

View File

@@ -1,8 +1,60 @@
import json
from apscheduler.schedulers.asyncio import AsyncIOScheduler
from apscheduler.triggers.base import BaseTrigger
from apscheduler.triggers.cron import CronTrigger
from xiaomusic.holiday import is_off_day, is_working_day
class CustomCronTrigger(BaseTrigger):
"""自定义触发器支持workday/offday特殊值"""
def __init__(self, cron_expression, holiday_checker=None):
self.cron_expression = cron_expression
self.holiday_checker = holiday_checker
# 分离表达式和注释
expr_parts = cron_expression.split("#", 1)
self.base_expression = expr_parts[0].strip()
self.annotation = expr_parts[1].strip().lower() if len(expr_parts) > 1 else ""
# 检查注释中是否包含特殊值
self.check_workday = "workday" in self.annotation
self.check_offday = "offday" in self.annotation
# 构建基础Cron触发器
try:
self.base_trigger = CronTrigger.from_crontab(self.base_expression)
except Exception as e:
raise ValueError(f"无效的Cron表达式: {self.base_expression}") from e
def get_next_fire_time(self, previous_fire_time, now):
# 获取基础Cron表达式的下一个触发时间
next_time = self.base_trigger.get_next_fire_time(previous_fire_time, now)
if not next_time:
return None
# 如果需要检查工作日/休息日
if self.check_workday or self.check_offday:
year = next_time.year
month = next_time.month
day = next_time.day
if self.check_workday:
valid = is_working_day(year, month, day)
else: # check_offday
valid = is_off_day(year, month, day)
# 如果日期有效,返回时间;否则寻找下一个有效时间
if valid:
return next_time
else:
return self.get_next_fire_time(next_time, next_time)
return next_time
class Crontab:
def __init__(self, log):
@@ -14,12 +66,19 @@ class Crontab:
def add_job(self, expression, job):
try:
trigger = CronTrigger.from_crontab(expression)
# 检查表达式中是否包含注释标记
if "#" in expression and (
"workday" in expression.lower() or "offday" in expression.lower()
):
trigger = CustomCronTrigger(expression)
else:
trigger = CronTrigger.from_crontab(expression)
self.scheduler.add_job(job, trigger)
except ValueError as e:
self.log.error(f"Invalid crontab expression {e}")
except Exception as e:
self.log.exception(f"Execption {e}")
self.log.exception(f"Exception {e}")
# 添加关机任务
def add_job_stop(self, expression, xiaomusic, did, **kwargs):
@@ -98,7 +157,7 @@ class Crontab:
if callable(func):
func(expression, xiaomusic, did=did, arg1=arg1)
self.log.info(
f"crontab add_job_cron ok. did:{did}, name:{name}, arg1:{arg1}"
f"crontab add_job_cron ok. did:{did}, name:{name}, arg1:{arg1} expression:{expression}"
)
else:
self.log.error(

79
xiaomusic/holiday.py Normal file
View File

@@ -0,0 +1,79 @@
import json
import logging
import os
from datetime import date
log = logging.getLogger(__package__)
# 用于存储已加载的年份数据
loaded_years = {}
def load_year_data(year):
"""加载指定年份的节假日数据"""
global loaded_years
if year in loaded_years:
return True
file_path = f"holiday/{year}.json"
if not os.path.exists(file_path):
log.warn(f"未找到 {file_path} 文件。")
return False
try:
with open(file_path, encoding="utf-8") as file:
data = json.load(file)
loaded_years[year] = {
day_info["date"]: day_info["isOffDay"]
for day_info in data.get("days", [])
}
log.info(f"成功加载 {year} 年数据。")
log.debug(f"加载的日期数据: {loaded_years[year]}")
return True
except Exception as e:
log.error(f"加载 {year} 年数据失败: {e}")
return False
def is_valid_date(year, month, day):
"""检查日期是否有效"""
try:
date(year, month, day)
return True
except ValueError:
return False
def is_weekend(year, month, day):
"""判断是否为周末"""
weekday = date(year, month, day).isoweekday()
return weekday >= 6 # 周六或周日
def is_off_day(year, month, day):
"""判断是否为休息日(包括法定节假日和周末)"""
# 检查日期有效性
if not is_valid_date(year, month, day):
log.warn(f"无效日期: {year}-{month:02d}-{day:02d}")
return None
# 加载年份数据
if not load_year_data(year):
return None
date_str = f"{year}-{month:02d}-{day:02d}"
# 检查是否为特殊日期
special_day = loaded_years[year].get(date_str)
if special_day is not None:
return special_day
# 检查是否为周末
return is_weekend(year, month, day)
def is_working_day(year, month, day):
"""判断是否为工作日(非休息日)"""
off_day = is_off_day(year, month, day)
return False if off_day is None else not off_day