项目截图
功能介绍
1. 公历,农历互转
1900-2100区间内的公历、农历互转参考作者 chenjinxin(chenjinxin@primeton.com)
2. 获取假期
以下为24年 国庆节为例
// 中国法定假日 调休 每年都有调整
const fadingjiariList = [{
year: 2024,
list: [
{
yd: '9.29',
type: 'work',
title: '',
introduce: '国庆节补假'
},
{
yd: '10.1',
type: 'rest',
title: '国庆节',
introduce: '国庆节'
},
{
yd: '10.2',
type: 'rest',
title: '',
introduce: '国庆节'
},
{
yd: '10.3',
type: 'rest',
title: '',
introduce: '国庆节'
},
{
yd: '10.4',
type: 'rest',
title: '',
introduce: '国庆节'
},
{
yd: '10.5',
type: 'rest',
title: '',
introduce: '国庆节'
},
{
yd: '10.6',
type: 'rest',
title: '',
introduce: '国庆节'
},
{
yd: '10.7',
type: 'rest',
title: '',
introduce: '国庆节'
},
{
yd: '10.12',
type: 'work',
title: '',
introduce: '国庆节补班'
},
]
}]
// 获取指定 YMD 匹配的假期
export const getTodayjqInfo = function(y, m, d) {
let info = {
type: '',
title_jq: ''
}
const idx = fadingjiariList.findIndex((item) => {
return item.year == y;
});
if (idx >= 0) {
let yearList = fadingjiariList[idx].list;
let ydinfo = yearList.find((item) => {
return item.yd == `${m}.${d}`;
});
if (ydinfo && ydinfo.type) {
info.type = ydinfo.type
info.title_jq = ydinfo.title
}
}
return info;
}
3. 获取星座
// 获取星座
export const getConstellation = function(month, day) {
const constellations = [
// 星座 1
{
id: 1,
title: "水瓶座",
beginYd: '1.20',
endYd: '2.18',
},
{
id: 2,
title: "双鱼座",
beginYd: '2.19',
endYd: '3.20',
},
{
id: 3,
title: "白羊座",
beginYd: '3.21',
endYd: '4.19',
},
{
id: 4,
title: "金牛座",
beginYd: '4.20',
endYd: '5.20',
},
{
id: 5,
title: "双子座",
beginYd: '5.21',
endYd: '6.21',
},
{
id: 6,
title: "巨蟹座",
beginYd: '6.22',
endYd: '7.22',
},
{
id: 7,
title: "狮子座",
beginYd: '7.23',
endYd: '8.22',
},
{
id: 8,
title: "处女座",
beginYd: '8.23',
endYd: '9.22',
},
{
id: 9,
title: "天秤座",
beginYd: '9.23',
endYd: '10.23',
},
{
id: 10,
title: "天蝎座",
beginYd: '10.24',
endYd: '11.22',
},
{
id: 11,
title: "射手座",
beginYd: '11.23',
endYd: '12.21',
},
{
id: 12,
title: "摩羯座",
beginYd: '12.22',
endYd: '1.19',
},
];
let currentNum = getydToNum(`${month}.${day}`)
let info = {
title: ''
}
if (month == '1') {
if (currentNum > getydToNum('1.19')) {
info = constellations[0]
} else {
info = constellations[11]
}
} else if (month == '12') {
if (currentNum > getydToNum('12.21')) {
info = constellations[11]
} else {
info = constellations[10]
}
} else {
// 找到对应
info = constellations.find((item) => {
let beginNum = getydToNum(item.beginYd)
let endNum = getydToNum(item.endYd)
return currentNum >= beginNum && currentNum <= endNum
});
}
return {
id_xz: info.id,
title_xz: info.title
}
}
// 处理日期为 num
function getydToNum(yd) {
let ydAdd = yd.split('.');
return parseInt(ydAdd[0] * 100) + parseInt(ydAdd[1])
}
4.获取节日
以部分节日纪念日为例
// 中国纪念日节日大全
const jinianriList = [
// 中国纪念日节日大全
{
yd: '1.1',
type: '',
title: '元旦',
introduce: '新年开始的第一天,标志着新的一年的开始。'
},
{
yd: '7.7',
type: '',
title: '',
introduce: '中国人民抗日战争纪念日(1937)'
},
{
yd: '8.1',
type: '',
title: '建军节',
introduce: '建军节'
},
{
yd: '8.15',
type: '',
title: '日本投降',
introduce: '日本无条件投降日 全国生态日'
},
{
yd: '8.22',
type: '',
title: '',
introduce: '邓小平诞辰纪念日(1945)'
},
{
yd: '9.3',
type: '',
title: '',
introduce: '中国抗日战争胜利纪念日(1945)'
},
{
yd: '9.9',
type: '',
title: '',
introduce: '毛泽东逝世纪念日(1976)'
}
]
// 获取指定 YMD 匹配的节日 纪念日
export const getTodayjnrInfo = function(y, m, d) {
let info = {
title_jnr: '',
introduce: ''
}
let ydinfo = jinianriList.find((item) => {
return item.yd == `${m}.${d}`;
});
if (ydinfo) {
info.title_jnr = ydinfo.title
info.introduce = ydinfo.introduce
}
return info;
}