SOURCE

/**获取农历 start*/
function 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*/
/**获取阴历 start*/
function 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*/
console 命令行工具 X clear

                    
>
console