@single-dog-no1/calendar
Version:
china lunar calendar
565 lines (563 loc) • 9.01 kB
text/typescript
import { getDateString } from "./utils";
// 调休
export const tiaoXiuMap: Record<string, Record<string, number>> = {
'2011': {
'04-02': 0,
'04-03': 1,
'04-04': 1,
'04-05': 1,
'04-30': 1,
'05-01': 1,
'05-02': 1,
'06-04': 1,
'06-05': 1,
'06-06': 1,
'09-10': 1,
'09-11': 1,
'09-12': 1,
'10-01': 1,
'10-02': 1,
'10-03': 1,
'10-04': 1,
'10-05': 1,
'10-06': 1,
'10-07': 1,
'10-08': 0,
'10-09': 0,
'12-31': 0
},
'2012': {
'01-01': 1,
'01-02': 1,
'01-03': 1,
'01-21': 0,
'01-22': 1,
'01-23': 1,
'01-24': 1,
'01-25': 1,
'01-26': 1,
'01-27': 1,
'01-28': 1,
'01-29': 0,
'03-31': 0,
'04-01': 0,
'04-02': 1,
'04-03': 1,
'04-04': 1,
'04-28': 0,
'04-29': 1,
'04-30': 1,
'05-01': 1,
'06-22': 1,
'06-23': 1,
'06-24': 1,
'09-29': 0,
'09-30': 1,
'10-01': 1,
'10-02': 1,
'10-03': 1,
'10-04': 1,
'10-05': 1,
'10-06': 1,
'10-07': 1
},
'2013': {
'01-01': 1,
'01-02': 1,
'01-03': 1,
'01-05': 0,
'01-06': 0,
'02-09': 1,
'02-10': 1,
'02-11': 1,
'02-12': 1,
'02-13': 1,
'02-14': 1,
'02-15': 1,
'02-16': 0,
'02-17': 0,
'04-04': 1,
'04-05': 1,
'04-06': 1,
'04-07': 0,
'04-27': 0,
'04-28': 0,
'04-29': 1,
'04-30': 1,
'05-01': 1,
'06-08': 0,
'06-09': 0,
'06-10': 1,
'06-11': 1,
'06-12': 1,
'09-19': 1,
'09-20': 1,
'09-21': 1,
'09-22': 0,
'09-29': 0,
'10-01': 1,
'10-02': 1,
'10-03': 1,
'10-04': 1,
'10-05': 1,
'10-06': 1,
'10-07': 1,
'10-12': 0
},
'2014': {
'01-01': 1,
'01-26': 0,
'01-31': 1,
'02-01': 1,
'02-02': 1,
'02-03': 1,
'02-04': 1,
'02-05': 1,
'02-06': 1,
'02-08': 0,
'04-05': 1,
'04-06': 1,
'04-07': 1,
'05-01': 1,
'05-02': 1,
'05-03': 1,
'05-04': 0,
'05-31': 1,
'06-01': 1,
'06-02': 1,
'09-08': 1,
'09-28': 0,
'10-01': 1,
'10-02': 1,
'10-03': 1,
'10-04': 1,
'10-05': 1,
'10-06': 1,
'10-07': 1,
'10-11': 0
},
'2015': {
'01-01': 1,
'01-02': 1,
'01-03': 1,
'01-04': 0,
'02-15': 0,
'02-18': 1,
'02-19': 1,
'02-20': 1,
'02-21': 1,
'02-22': 1,
'02-23': 1,
'02-24': 1,
'02-28': 0,
'04-04': 1,
'04-05': 1,
'04-06': 1,
'05-01': 1,
'05-02': 1,
'05-03': 1,
'06-20': 1,
'06-21': 1,
'06-22': 1,
'09-03': 1,
'09-04': 1,
'09-05': 1,
'09-06': 0,
'09-27': 1,
'10-01': 1,
'10-02': 1,
'10-03': 1,
'10-04': 1,
'10-05': 1,
'10-06': 1,
'10-07': 1,
'10-10': 0
},
'2016': {
'01-01': 1,
'01-02': 1,
'01-03': 1,
'02-06': 0,
'02-07': 1,
'02-08': 1,
'02-09': 1,
'02-10': 1,
'02-11': 1,
'02-12': 1,
'02-13': 1,
'02-14': 0,
'04-02': 1,
'04-03': 1,
'04-04': 1,
'04-30': 1,
'05-01': 1,
'05-02': 1,
'06-09': 1,
'06-10': 1,
'06-11': 1,
'06-12': 0,
'09-15': 1,
'09-16': 1,
'09-17': 1,
'09-18': 0,
'10-01': 1,
'10-02': 1,
'10-03': 1,
'10-04': 1,
'10-05': 1,
'10-06': 1,
'10-07': 1,
'10-08': 0,
'10-09': 0
},
'2017': {
'01-01': 1,
'01-02': 1,
'01-22': 0,
'01-27': 1,
'01-28': 1,
'01-29': 1,
'01-30': 1,
'01-31': 1,
'02-01': 1,
'02-02': 1,
'02-04': 0,
'04-01': 0,
'04-02': 1,
'04-03': 1,
'04-04': 1,
'04-29': 1,
'04-30': 1,
'05-01': 1,
'05-27': 0,
'05-28': 1,
'05-29': 1,
'05-30': 1,
'09-30': 0,
'10-01': 1,
'10-02': 1,
'10-03': 1,
'10-04': 1,
'10-05': 1,
'10-06': 1,
'10-07': 1,
'10-08': 1,
'12-30': 1,
'12-31': 1
},
'2018': {
'01-01': 1,
'02-11': 0,
'02-15': 1,
'02-16': 1,
'02-17': 1,
'02-18': 1,
'02-19': 1,
'02-20': 1,
'02-21': 1,
'02-24': 0,
'04-05': 1,
'04-06': 1,
'04-07': 1,
'04-08': 0,
'04-28': 0,
'04-29': 1,
'04-30': 1,
'05-01': 1,
'06-16': 1,
'06-17': 1,
'06-18': 1,
'09-22': 1,
'09-23': 1,
'09-24': 1,
'09-29': 0,
'09-30': 0,
'10-01': 1,
'10-02': 1,
'10-03': 1,
'10-04': 1,
'10-05': 1,
'10-06': 1,
'10-07': 1,
'12-29': 0,
'12-30': 1,
'12-31': 1
},
'2019': {
'01-01': 1,
'02-02': 0,
'02-03': 0,
'02-04': 1,
'02-05': 1,
'02-06': 1,
'02-07': 1,
'02-08': 1,
'02-09': 1,
'02-10': 1,
'04-05': 1,
'04-06': 1,
'04-07': 1,
'04-28': 0,
'05-01': 1,
'05-02': 1,
'05-03': 1,
'05-04': 1,
'05-05': 0,
'06-07': 1,
'06-08': 1,
'06-09': 1,
'09-13': 1,
'09-14': 1,
'09-15': 1,
'09-29': 0,
'10-01': 1,
'10-02': 1,
'10-03': 1,
'10-04': 1,
'10-05': 1,
'10-06': 1,
'10-07': 1,
'10-12': 0
},
'2020': {
'01-01': 1,
'01-19': 0,
'01-24': 1,
'01-25': 1,
'01-26': 1,
'01-27': 1,
'01-28': 1,
'01-29': 1,
'01-30': 1,
'02-01': 0,
'04-04': 1,
'04-05': 1,
'04-06': 1,
'04-26': 0,
'05-01': 1,
'05-02': 1,
'05-03': 1,
'05-04': 1,
'05-05': 1,
'05-09': 0,
'06-25': 1,
'06-26': 1,
'06-27': 1,
'06-28': 0,
'09-27': 0,
'10-01': 1,
'10-02': 1,
'10-03': 1,
'10-04': 1,
'10-05': 1,
'10-06': 1,
'10-07': 1,
'10-08': 1,
'10-10': 0
},
'2021': {
'01-01': 1,
'01-02': 1,
'01-03': 1,
'02-07': 0,
'02-11': 1,
'02-12': 1,
'02-13': 1,
'02-14': 1,
'02-15': 1,
'02-16': 1,
'02-17': 1,
'02-20': 0,
'04-03': 1,
'04-04': 1,
'04-05': 1,
'04-25': 0,
'05-01': 1,
'05-02': 1,
'05-03': 1,
'05-04': 1,
'05-05': 1,
'05-08': 0,
'06-12': 1,
'06-13': 1,
'06-14': 1,
'09-18': 0,
'09-19': 1,
'09-20': 1,
'09-21': 1,
'09-26': 0,
'10-01': 1,
'10-02': 1,
'10-03': 1,
'10-04': 1,
'10-05': 1,
'10-06': 1,
'10-07': 1,
'10-09': 0
},
'2022': {
'01-01': 1,
'01-02': 1,
'01-03': 1,
'01-29': 0,
'01-30': 0,
'01-31': 1,
'02-01': 1,
'02-02': 1,
'02-03': 1,
'02-04': 1,
'02-05': 1,
'02-06': 1,
'04-02': 0,
'04-03': 1,
'04-04': 1,
'04-05': 1,
'04-24': 0,
'04-30': 1,
'05-01': 1,
'05-02': 1,
'05-03': 1,
'05-04': 1,
'05-07': 0,
'06-03': 1,
'06-04': 1,
'06-05': 1,
'09-10': 1,
'09-11': 1,
'09-12': 1,
'10-01': 1,
'10-02': 1,
'10-03': 1,
'10-04': 1,
'10-05': 1,
'10-06': 1,
'10-07': 1,
'10-08': 0,
'10-09': 0,
'12-31': 1
},
'2023': {
'01-01': 1,
'01-02': 1,
'01-21': 1,
'01-22': 1,
'01-23': 1,
'01-24': 1,
'01-25': 1,
'01-26': 1,
'01-27': 1,
'01-28': 0,
'01-29': 0,
'04-05': 1,
'04-29': 1,
'04-30': 1,
'05-01': 1,
'05-02': 1,
'05-03': 1,
'04-23': 0,
'05-06': 0,
'06-22': 1,
'06-23': 1,
'06-24': 1,
'06-25': 0,
'09-29': 1,
'09-30': 1,
'10-01': 1,
'10-02': 1,
'10-03': 1,
'10-04': 1,
'10-05': 1,
'10-06': 1,
'10-07': 0,
'10-08': 0,
'12-30': 1,
'12-31': 1,
},
'2024': {
'01-01': 1,
'02-04': 0,
'02-10': 1,
'02-11': 1,
'02-12': 1,
'02-13': 1,
'02-14': 1,
'02-15': 1,
'02-16': 1,
'02-17': 1,
'02-18': 0,
'04-04': 1,
'04-05': 1,
'04-06': 1,
'04-07': 0,
'04-28': 0,
'05-01': 1,
'05-02': 1,
'05-03': 1,
'05-04': 1,
'05-05': 1,
'05-11': 0,
'06-08': 1,
'06-09': 1,
'06-10': 1,
'09-14': 0,
'09-15': 1,
'09-16': 1,
'09-17': 1,
'09-29': 0,
'10-01': 1,
'10-02': 1,
'10-03': 1,
'10-04': 1,
'10-05': 1,
'10-06': 1,
'10-07': 1,
'10-12': 0,
},
'2025': {
'01-01': 1,
'01-26': 0,
'01-28': 1,
'01-29': 1,
'01-30': 1,
'01-31': 1,
'02-01': 1,
'02-02': 1,
'02-03': 1,
'02-04': 1,
'02-08': 0,
'04-04': 1,
'04-05': 1,
'04-06': 1,
'04-27': 0,
'05-01': 1,
'05-02': 1,
'05-03': 1,
'05-04': 1,
'05-05': 1,
'05-31': 1,
'06-01': 1,
'06-02': 1,
'09-28': 0,
'10-01': 1,
'10-02': 1,
'10-03': 1,
'10-04': 1,
'10-05': 1,
'10-06': 1,
'10-07': 1,
'10-08': 1,
'10-11': 0,
}
};
/**
* 返回查询当天是否调休
* @returns {number} -1: 不调休; 0: 调休(工作日); 1: 调休(休息)
*/
export function getTiaoXiuDay(year: number, month: number, day: number) {
const holiday = tiaoXiuMap[year];
let dateStr = getDateString(month, day);
if (holiday && typeof holiday[dateStr] !== 'undefined') {
return holiday[dateStr]
}
return -1
}