动态获取当前时间、星期、农历的日历js

28 篇文章 0 订阅
13 篇文章 1 订阅


借鉴网上案例,定制了一个动态获取当前时间、星期、农历的日历js


<!doctype html>
<html lang="en">
 <head>
  <meta charset="UTF-8">
  <meta name="Generator" content="EditPlus®">
  <meta name="Author" content="">
  <meta name="Keywords" content="">
  <meta name="Description" content="">
  <title>Document</title>
  <script type="text/javascript" src="js/jquery.js"></script>
 </head>
 <body>
  
	<input type="text" name="time" id="time" style="width:400px;"/>


	<script type="text/javascript">
	$(function(){
		setInterval(myclock,1000);
		setInterval(CalConv,1000);

		function myclock(){
			var now = new Date();
			var year = now.getFullYear();
			var month = now.getMonth()+1;
			if(month<10){
				month="0"+month;
			}
			var day = now.getDate();
			if(day<10){
				day="0"+day;
			}
			var week = now.getDay();
			switch(week){
				case 1:
					week="一";break; 
				case 2:
					week="二";break;
				case 3:
					week="三";break;
				case 4:
					week="三";break;
				case 5:
					week="三";break;
				case 6:
					week="三";break;
				default:
					week="日";break;
			}
			var hour = now.getHours();
			if(hour<10){
				hour="0"+hour;
			}
			var minutes = now.getMinutes();
			if(minutes<10){
				minutes="0"+minutes;
			}
			var seconds = now.getSeconds();
			if(seconds<10){
				seconds="0"+seconds;
			}
			var myDateTime = "现在是" + year + "年"+ month + "月" + day +"日  " + hour + ":" + minutes +":"+seconds	+ "   星期"+week
			document.getElementById("time").value = myDateTime;
		}

/*计算农历 - 开始*/
			function tagLunarCal( d, i, w, k, m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13) {
				 this.BaseDays = d;         /* 到民國 1 月 1 日到農曆正月初一的累積日數 */
				 this.Intercalation = i;    /* 閏月月份. 0==此年沒有閏月 */
				 this.BaseWeekday = w;      /* 此年民國 1 月 1 日為星期幾再減 1 */
				 this.BaseKanChih = k;      /* 此年民國 1 月 1 日之干支序號減 1 */
				 this.MonthDays = [ m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13 ]; /* 此農曆年每月之大小, 0==小月(29日), 1==大月(30日) */
			}

			function GetLeap( year ){
			   if ( year % 400 == 0 )
				 return 1;
			   else if ( year % 100 == 0 )
				 return 0;
			   else if ( year % 4 == 0 )
				 return 1;
			   else
				 return 0;
			}



		function CalConv(){
			FIRSTYEAR = 1998;
			LASTYEAR = 2031;
			today = new Date();
			SolarYear = today.getFullYear();
			SolarMonth = today.getMonth() + 1;
			SolarDate = today.getDate();
			Weekday = today.getDay();
			LunarCal = [
		  new tagLunarCal( 27,  5, 3, 43, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1 ),
		  new tagLunarCal( 46,  0, 4, 48, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1 ), /* 88 */
		  new tagLunarCal( 35,  0, 5, 53, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1 ), /* 89 */
		  new tagLunarCal( 23,  4, 0, 59, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1 ),
		  new tagLunarCal( 42,  0, 1,  4, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1 ),
		  new tagLunarCal( 31,  0, 2,  9, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0 ),
		  new tagLunarCal( 21,  2, 3, 14, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1 ), /* 93 */
		  new tagLunarCal( 39,  0, 5, 20, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1 ),
		  new tagLunarCal( 28,  7, 6, 25, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1 ),
		  new tagLunarCal( 48,  0, 0, 30, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1 ),
		  new tagLunarCal( 37,  0, 1, 35, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1 ), /* 97 */
		  new tagLunarCal( 25,  5, 3, 41, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1 ),
		  new tagLunarCal( 44,  0, 4, 46, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1 ),
		  new tagLunarCal( 33,  0, 5, 51, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1 ),
		  new tagLunarCal( 22,  4, 6, 56, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0 ), /* 101 */
		  new tagLunarCal( 40,  0, 1,  2, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0 ),
		  new tagLunarCal( 30,  9, 2,  7, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1 ),
		  new tagLunarCal( 49,  0, 3, 12, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1 ),
		  new tagLunarCal( 38,  0, 4, 17, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0 ), /* 105 */
		  new tagLunarCal( 27,  6, 6, 23, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1 ),
		  new tagLunarCal( 46,  0, 0, 28, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0 ),
		  new tagLunarCal( 35,  0, 1, 33, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0 ),
		  new tagLunarCal( 24,  4, 2, 38, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1 ), /* 109 */
		  new tagLunarCal( 42,  0, 4, 44, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1 ),
		  new tagLunarCal( 31,  0, 5, 49, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0 ),
		  new tagLunarCal( 21,  2, 6, 54, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1 ),
		  new tagLunarCal( 40,  0, 0, 59, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1 ), /* 113 */
		  new tagLunarCal( 28,  6, 2,  5, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0 ),
		  new tagLunarCal( 47,  0, 3, 10, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1 ),
		  new tagLunarCal( 36,  0, 4, 15, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1 ),
		  new tagLunarCal( 25,  5, 5, 20, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0 ), /* 117 */
		  new tagLunarCal( 43,  0, 0, 26, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1 ),
		  new tagLunarCal( 32,  0, 1, 31, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0 ),
		  new tagLunarCal( 22,  3, 2, 36, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0 ) ];
		 /* 民國年每月之日數 */
		 SolarCal = [ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ];
		 /* 民國年每月之累積日數, 平年與閏年 */
		SolarDays = [  0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365, 396,  0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335, 366, 397 ];
			AnimalIdx = ["马", "羊", "猴", "鸡", "狗", "猪", "鼠", "牛", "虎", "兔", "龙", "蛇" ];
			LocationIdx = [ "南", "东", "北", "西" ];
			if ( SolarYear <= FIRSTYEAR || SolarYear > LASTYEAR ) return 1;
			sm = SolarMonth - 1;
				if ( sm < 0 || sm > 11 ) return 2;
				leap = GetLeap( SolarYear );
			if ( sm == 1 )
				d = leap + 28;
			else
				d = SolarCal[sm];
			if ( SolarDate < 1 || SolarDate > d ) return 3;
			y = SolarYear - FIRSTYEAR;
			acc = SolarDays[ leap*14 + sm ] + SolarDate;
			kc = acc + LunarCal[y].BaseKanChih;
			Kan = kc % 10;
			Chih = kc % 12;
			Location = LocationIdx[kc % 4];
			Age = kc % 60;
			if ( Age < 22 )
				Age = 22 - Age;
			else
				Age = 82 - Age;
			Animal = AnimalIdx[ Chih ];
			if ( acc <= LunarCal[y].BaseDays ) {
				y--;
				LunarYear = SolarYear - 1;
				leap = GetLeap( LunarYear );
				sm += 12;
				acc = SolarDays[leap*14 + sm] + SolarDate;
			 }
			else
				LunarYear = SolarYear;
					l1 = LunarCal[y].BaseDays;
			for ( i=0; i<13; i++ ) {
				l2 = l1 + LunarCal[y].MonthDays[i] + 29;
				if ( acc <= l2 ) break;
				l1 = l2;
			 }
			LunarMonth = i + 1;
			LunarDate = acc - l1;
			im = LunarCal[y].Intercalation;
			if ( im != 0 && LunarMonth > im ) {
				LunarMonth--;
				if ( LunarMonth == im ) LunarMonth = -im;
			 }
			if ( LunarMonth > 12 ) LunarMonth -= 12;
			today=new Date();
			   function initArray(){
				 this.length=initArray.arguments.length
				 for(var i=0;i<this.length;i++)
				 this[i+1]=initArray.arguments[i]  }
				 if(LunarMonth<10){
					 LunarMonth = "0"+LunarMonth;
				 }
				 if(LunarDate<10){
					 LunarDate = "0"+LunarDate;
				 }
				 var DateTime = document.getElementById("time").value;
				document.getElementById("time").value = DateTime + "   农历 " + LunarMonth + "月" + LunarDate + "日" ;
			  return 0;
			}
/*计算农历 - 结束*/

	});
	</script>

 </body>
</html>


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值