uni-app 手搓日历 微信小程序

项目截图

功能介绍

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;
}

微信小程序体验 

完成代码 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值