JS获取阴历+阳历时间

2023-11-13

1、阴历

/**获取阴历 start*/
getLunar(){
	var nyear;
	var nmonth;
	var nday = -1;
	var nwday;
	var nhrs;
	var nmin;
	var nsec;
	var lmonth, lday, lleap; //农历参数
	function Draw() {
		NewTick();
		
		//显示时间
		var s = nyear + '年' + nmonth + '月' + nday + '日 ' + '星期' + cweekday(nwday) + ' ' + shapetime(nhrs, nmin, nsec);
		s += " 农历" + lmonth + "月" + lday; //农历
		var lunar_month_day=lmonth + "月" + lday;
		//需要展示在页面地方
		console.log("农历日期---",lunar_month_day);
	}
	
	
	function NewTick() {
		let noww = new Date();
		if (noww.getDate() != nday) {
			nyear = noww.getFullYear();
			nmonth = noww.getMonth() + 1;
			nwday = noww.getDay();
			nday = noww.getDate();
			getlunar(); //获取农历
		}
		nhrs = noww.getHours();
		nmin = noww.getMinutes();
		nsec = noww.getSeconds();
	}
	
	
	//辅助函数
	var hzWeek = new Array("星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日");
	function cweekday(wday) {
		console.log('星期---',hzWeek[wday]);
	}
	function shapetime(vhrs, vmin, vsec) {
		if (vsec <= 9) vsec = "0" + vsec;
		if (vmin <= 9) vmin = "0" + vmin;
		if (vhrs <= 9) vhrs = "0" + vhrs;
		// return vhrs + ":" + vmin + ":" + vsec
		console.log("时间日期---",vhrs + ":" + vmin + ":" + vsec);
	}
	
	//阴历函数开始
	var lunarInfo = new Array(0x04bd8, 0x04ae0, 0x0a570, 0x054d5, 0x0d260, 0x0d950, 0x16554, 0x056a0, 0x09ad0, 0x055d2, 0x04ae0, 0x0a5b6, 0x0a4d0, 0x0d250, 0x1d255, 0x0b540, 0x0d6a0, 0x0ada2, 0x095b0, 0x14977, 0x04970, 0x0a4b0, 0x0b4b5, 0x06a50, 0x06d40, 0x1ab54, 0x02b60, 0x09570, 0x052f2, 0x04970, 0x06566, 0x0d4a0, 0x0ea50, 0x06e95, 0x05ad0, 0x02b60, 0x186e3, 0x092e0, 0x1c8d7, 0x0c950, 0x0d4a0, 0x1d8a6, 0x0b550, 0x056a0, 0x1a5b4, 0x025d0, 0x092d0, 0x0d2b2, 0x0a950, 0x0b557, 0x06ca0, 0x0b550, 0x15355, 0x04da0, 0x0a5b0, 0x14573, 0x052b0, 0x0a9a8, 0x0e950, 0x06aa0, 0x0aea6, 0x0ab50, 0x04b60, 0x0aae4, 0x0a570, 0x05260, 0x0f263, 0x0d950, 0x05b57, 0x056a0, 0x096d0, 0x04dd5, 0x04ad0, 0x0a4d0, 0x0d4d4, 0x0d250, 0x0d558, 0x0b540, 0x0b6a0, 0x195a6, 0x095b0, 0x049b0, 0x0a974, 0x0a4b0, 0x0b27a, 0x06a50, 0x06d40, 0x0af46, 0x0ab60, 0x09570, 0x04af5, 0x04970, 0x064b0, 0x074a3, 0x0ea50, 0x06b58, 0x05ac0, 0x0ab60, 0x096d5, 0x092e0, //1990
		0x0c960, 0x0d954, 0x0d4a0, 0x0da50, 0x07552, 0x056a0, 0x0abb7, 0x025d0, 0x092d0, 0x0cab5, 0x0a950, 0x0b4a0, 0x0baa4, 0x0ad50, 0x055d9, 0x04ba0, 0x0a5b0, 0x15176, 0x052b0, 0x0a930, 0x07954, 0x06aa0, 0x0ad50, 0x05b52, 0x04b60, 0x0a6e6, 0x0a4e0, 0x0d260, 0x0ea65, 0x0d530, 0x05aa0, 0x076a3, 0x096d0, 0x04bd7, 0x04ad0, 0x0a4d0, 0x1d0b6, 0x0d250, 0x0d520, 0x0dd45, 0x0b5a0, 0x056d0, 0x055b2, 0x049b0, 0x0a577, 0x0a4b0, 0x0aa50, 0x1b255, 0x06d20, 0x0ada0, 0x14b63);
	function lYearDays(y) {
		var i, sum = 348;
		for (i = 0x8000; i > 0x8; i >>= 1) sum += (lunarInfo[y - 1900] & i) ? 1 : 0;
		return (sum + leapDays(y));
	}
	function leapDays(y) {
		if (leapMonth(y)) return ((lunarInfo[y - 1900] & 0x10000) ? 30 : 29);
		else return (0);
	}
	function leapMonth(y) {
		return (lunarInfo[y - 1900] & 0xf);
	}
	function monthDays(y, m) {
		return ((lunarInfo[y - 1900] & (0x10000 >> m)) ? 30 : 29);
	}
	function Lunar(y, m, d) {
		var i, leap = 0,
			temp = 0;
		var offset = (Date.UTC(y, m, d) - Date.UTC(1900, 0, 31)) / 86400000;
		for (i = 1900; i < 2050 && offset > 0; i++) {
			temp = lYearDays(i);
			offset -= temp;
		}
		if (offset < 0) {
			offset += temp;
			i--;
		}
		this.year = i;
		leap = leapMonth(i);
		this.isLeap = false;
		for (i = 1; i < 13 && offset > 0; i++) {
			if (leap > 0 && i == (leap + 1) && this.isLeap == false) {--i;
				this.isLeap = true;
				temp = leapDays(this.year);
			} else {
				temp = monthDays(this.year, i);
			}
			if (this.isLeap == true && i == (leap + 1)) this.isLeap = false;
			offset -= temp;
		}
		if (offset == 0 && leap > 0 && i == leap + 1) if (this.isLeap) {
			this.isLeap = false;
		} else {
			this.isLeap = true; --i;
		}
		if (offset < 0) {
			offset += temp; --i;
		}
		this.month = i;
		this.day = offset + 1;
	}
	var nStr1 = new Array('', '一', '二', '三', '四', '五', '六', '七', '八', '九', '十', '十一', '十二');
	var nStr2 = new Array('初', '十', '廿', '卅', '□');
	function GetcDay(d) {
		var s;
		switch (d) {
			case 10:
				s = '初十';
				break;
			case 20:
				s = '二十';
				break;
			case 30:
				s = '三十';
				break;
			default:
				s = nStr2[Math.floor(d / 10)];
				s += nStr1[d % 10];
				break;
		}
		return (s);
	}
	function GetcMon(m) {
		if (m == 1) return '正';
		else return nStr1[m];
	}
	function getlunar() {
		var lObj = new Lunar(nyear, nmonth - 1, nday);
		lmonth = GetcMon(lObj.month);
		lday = GetcDay(lObj.day);
		lleap = lObj.isLeap;
		if (lleap == 1) {
			lmonth = "闰" + lmonth;
		}
	}
	//阴历函数结束
	Draw();
},
/**获取阴历 end*/

2、阳历

/**获取阳历 start*/
time(){
	let date = new Date();
	let sign2 = ":";
	let year = date.getFullYear() // 年
	let month = date.getMonth() + 1; // 月
	let day = date.getDate(); // 日
	let hour = date.getHours(); // 时
	let minutes = date.getMinutes(); // 分
	let seconds = date.getSeconds() //秒
	// 给一位数的数据前面加 “0”
	if (month >= 1 && month <= 9) {
		month = "0" + month;
	}
	if (day >= 0 && day <= 9) {
		day = "0" + day;
	}
	if (hour >= 0 && hour <= 9) {
		hour = "0" + hour;
	}
	if (minutes >= 0 && minutes <= 9) {
		minutes = "0" + minutes;
	}
	if (seconds >= 0 && seconds <= 9) {
		seconds = "0" + seconds;
	}
	// console.log("时间---",year + "-" + month + "-" + day + " " + hour + sign2 + minutes + sign2 + seconds);
	console.log("阴历时间---",year + "-" + month + "-" + day);
},
/**获取阳历 end*/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JS获取阴历+阳历时间 的相关文章