⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 calendar.js

📁 一段很有意义的源码,看了就知道,不信试一试啊!
💻 JS
字号:

//日历信息资料从1900--2100
var LUNAR_INFO=new Array(
0x4bd8,0x4ae0,0xa570,0x54d5,0xd260,0xd950,0x5554,0x56af,0x9ad0,0x55d2,
0x4ae0,0xa5b6,0xa4d0,0xd250,0xd255,0xb54f,0xd6a0,0xada2,0x95b0,0x4977,
0x497f,0xa4b0,0xb4b5,0x6a50,0x6d40,0xab54,0x2b6f,0x9570,0x52f2,0x4970,
0x6566,0xd4a0,0xea50,0x6a95,0x5adf,0x2b60,0x86e3,0x92ef,0xc8d7,0xc95f,
0xd4a0,0xd8a6,0xb55f,0x56a0,0xa5b4,0x25df,0x92d0,0xd2b2,0xa950,0xb557,
0x6ca0,0xb550,0x5355,0x4daf,0xa5b0,0x4573,0x52bf,0xa9a8,0xe950,0x6aa0,
0xaea6,0xab50,0x4b60,0xaae4,0xa570,0x5260,0xf263,0xd950,0x5b57,0x56a0,
0x96d0,0x4dd5,0x4ad0,0xa4d0,0xd4d4,0xd250,0xd558,0xb540,0xb6a0,0x95a6,
0x95bf,0x49b0,0xa974,0xa4b0,0xb27a,0x6a50,0x6d40,0xaf46,0xab60,0x9570,
0x4af5,0x4970,0x64b0,0x74a3,0xea50,0x6b58,0x5ac0,0xab60,0x96d5,0x92e0,
0xc960,0xd954,0xd4a0,0xda50,0x7552,0x56a0,0xabb7,0x25d0,0x92d0,0xcab5,
0xa950,0xb4a0,0xbaa4,0xad50,0x55d9,0x4ba0,0xa5b0,0x5176,0x52bf,0xa930,
0x7954,0x6aa0,0xad50,0x5b52,0x4b60,0xa6e6,0xa4e0,0xd260,0xea65,0xd530,
0x5aa0,0x76a3,0x96d0,0x4afb,0x4ad0,0xa4d0,0xd0b6,0xd25f,0xd520,0xdd45,
0xb5a0,0x56d0,0x55b2,0x49b0,0xa577,0xa4b0,0xaa50,0xb255,0x6d2f,0xada0,
0x4b63,0x937f,0x49f8,0x4970,0x64b0,0x68a6,0xea5f,0x6b20,0xa6c4,0xaaef,
0x92e0,0xd2e3,0xc960,0xd557,0xd4a0,0xda50,0x5d55,0x56a0,0xa6d0,0x55d4,
0x52d0,0xa9b8,0xa950,0xb4a0,0xb6a6,0xad50,0x55a0,0xaba4,0xa5b0,0x52b0,
0xb273,0x6930,0x7337,0x6aa0,0xad50,0x4b55,0x4b6f,0xa570,0x54e4,0xd260,
0xe968,0xd520,0xdaa0,0x6aa6,0x56df,0x4ae0,0xa9d4,0xa4d0,0xd150,0xf252,
0xd520);

//返回农历 y 年的总天数
function lYearDays(y) {
    var i, sum = 348;
 	for(i=0x8000; i>0x8; i>>=1) { 
		sum += (LUNAR_INFO[y-1900] & i)? 1: 0;
	}
 	return(sum+leapDays(y));
}

//返回农历 y 年闰月的天数
function leapDays(y) {
 	if(leapMonth(y)) { 
 		return( (LUNAR_INFO[y-1899]&0xf)==0xf? 30: 29);
 	}
 	else {
	 	return(0);
 	}
}

//返回农历 y 年闰哪个月 1-12 , 没闰返回 0
function leapMonth(y) {
 	var lm = LUNAR_INFO[y-1900] & 0xf;
 	return(lm==0xf?0:lm);
}

//返回农历 y 年 m 月的总天数
function monthDays(y,m) {
 	return( (LUNAR_INFO[y-1900] & (0x10000>>m))? 30: 29 );
}

//根据传入的javascript的Date对象 objDate,
//算出农历的日期
function Lunar(objDate) {
    var i, leap = 0, temp = 0;
    var offset = (Date.UTC(objDate.getFullYear(),objDate.getMonth(),objDate.getDate()) - Date.UTC(1900,0,31))/86400000;

   	for(i=1900; i<2100 && 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;
}

//通过公历的年、月、日,得到相应的农历的被格式的字符串
//年份值为四位且在1900-2100间,如:1955,2003
function getNLStr(year,month,day) {
	Lunar(new Date(year,month-1,day));
	return "农历  " + this.year + " 年 " + this.month + " 月 " + this.day + " 日 ";				   
}

//得到公历某一年的某一月里的天数
function getMonthDays(year,month) {
	var monthDays = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
	if(month == 2){
		return(((year%4 == 0) && (year%100 != 0) || (year%400 == 0))? 29: 28);
	}
	else{
		return(monthDays[month-1]);
	}
}

//得到某一天的星期数,0表示星期日,6表示星期六
function getDateWeek(year,month,day){
	var myDate = new Date(year,month,day,0,0,0,0);
	return myDate.getDay();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -