?? calendar.asp
字號:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!--#include file="chk.asp"-->
<HTML><HEAD><TITLE>萬年歷</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<SCRIPT language=JavaScript>
<!--
/*****************************************************************************
日期資料
*****************************************************************************/
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,0x055c0,0x0ab60,0x096d5,0x092e0,
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);
var solarMonth=new Array(31,28,31,30,31,30,31,31,30,31,30,31);
var Gan=new Array("甲","乙","丙","丁","戊","己","庚","辛","壬","癸");
var Zhi=new Array("子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥");
var Animals=new Array("鼠","牛","虎","兔","龍","蛇","馬","羊","猴","雞","狗","豬");
var solarTerm = new Array("小寒","大寒","立春","雨水","驚蟄","春分","清明","谷雨","立夏","小滿","芒種","夏至","小暑","大暑","立秋","處暑","白露","秋分","寒露","霜降","立冬","小雪","大雪","冬至");
var sTermInfo = new Array(0,21208,42467,63836,85337,107014,128867,150921,173149,195551,218072,240693,263343,285989,308563,331033,353350,375494,397447,419210,440795,462224,483532,504758);
var nStr1 = new Array('日','一','二','三','四','五','六','七','八','九','十');
var nStr2 = new Array('初','十','廿','卅','□');
var monthName = new Array("JAN","FEB","MAR","APR","MAY","JUN","JUL","AUG","SEP","OCT","NOV","DEC");
//國歷節日 *表示放假日
var sFtv = new Array(
"0101*元旦節",
"0202 世界濕地日",
"0210 國際氣象節",
"0214 情人節",
"0301 國際海豹日",
"0303 全國愛耳日",
"0305 學雷鋒紀念日",
"0308 婦女節",
"0312 植樹節 孫中山逝世紀念日",
"0314 國際警察日",
"0315 消費者權益日",
"0317 中國國醫節 國際航海日",
"0321 世界森林日 消除種族歧視國際日 世界兒歌日",
"0322 世界水日",
"0323 世界氣象日",
"0324 世界防治結核病日",
"0325 全國中小學生安全教育日",
"0330 巴勒斯坦國土日",
"0401 愚人節 全國愛國衛生運動月(四月) 稅收宣傳月(四月)",
"0407 世界衛生日",
"0422 世界地球日",
"0423 世界圖書和版權日",
"0424 亞非新聞工作者日",
"0501*勞動節",
"0502*勞動節假日",
"0503*勞動節假日",
"0504 青年節",
"0505 碘缺乏病防治日",
"0508 世界紅十字日",
"0512 國際護士節",
"0515 國際家庭日",
"0517 國際電信日",
"0518 國際博物館日",
"0520 全國學生營養日",
"0523 國際牛奶日",
"0531 世界無煙日",
"0601 國際兒童節",
"0605 世界環境保護日",
"0606 全國愛眼日",
"0617 防治荒漠化和干旱日",
"0623 國際奧林匹克日",
"0625 全國土地日",
"0626 國際禁毒日",
"0701 香港回歸紀念日 中共誕辰 世界建筑日",
"0702 國際體育記者日",
"0707 抗日戰爭紀念日",
"0711 世界人口日",
"0730 非洲婦女日",
"0801 建軍節",
"0808 中國男子節(爸爸節)",
"0815 抗日戰爭勝利紀念",
"0908 國際掃盲日 國際新聞工作者日",
"0909 毛澤東逝世紀念",
"0910 中國教師節",
"0914 世界清潔地球日",
"0916 國際臭氧層保護日",
"0918 九·一八事變紀念日",
"0920 國際愛牙日",
"0927 世界旅游日",
"0928 孔子誕辰",
"1001*國慶節 世界音樂日 國際老人節",
"1002*國慶節假日 國際和平與民主自由斗爭日",
"1003*國慶節假日",
"1004 世界動物日",
"1006 老人節",
"1008 全國高血壓日 世界視覺日",
"1009 世界郵政日 萬國郵聯日",
"1010 辛亥革命紀念日 世界精神衛生日",
"1013 世界保健日 國際教師節",
"1014 世界標準日",
"1015 國際盲人節(白手杖節)",
"1016 世界糧食日",
"1017 世界消除貧困日",
"1022 世界傳統醫藥日",
"1024 聯合國日",
"1031 世界勤儉日",
"1107 十月社會主義革命紀念日",
"1108 中國記者日",
"1109 全國消防安全宣傳教育日",
"1110 世界青年節",
"1111 國際科學與和平周(本日所屬的一周)",
"1112 孫中山誕辰紀念日",
"1114 世界糖尿病日",
"1117 國際大學生節 世界學生節",
"1120*彝族年",
"1121*彝族年 世界問候日 世界電視日",
"1122*彝族年",
"1129 國際聲援巴勒斯坦人民國際日",
"1201 世界艾滋病日",
"1203 世界殘疾人日",
"1205 國際經濟和社會發展志愿人員日",
"1208 國際兒童電視日",
"1209 世界足球日",
"1210 世界人權日",
"1212 西安事變紀念日",
"1213 南京大屠殺(1937年)紀念日!緊記血淚史!",
"1220 澳門回歸紀念",
"1221 國際籃球日",
"1224 平安夜",
"1225 圣誕節",
"1226 毛澤東誕辰紀念")
//農歷節日 *表示放假日
var lFtv = new Array(
"0101*春節",
"0102*春節",
"0103*春節",
"0115 元宵節",
"0505 端午節",
"0624*火把節",
"0625*火把節",
"0626*火把節",
"0707 七夕情人節",
"0715 中元節",
"0815 中秋節",
"0909 重陽節",
"1208 臘八節",
"1223 小年",
"0100 除夕")
//某月的第幾個星期幾
var wFtv = new Array(
"0150 世界麻風日", //一月的最后一個星期日(月倒數第一個星期日)
"0520 國際母親節",
"0530 全國助殘日",
"0630 父親節",
"0730 被奴役國家周",
"0932 國際和平日",
"0940 國際聾人節 世界兒童日",
"0950 世界海事日",
"1011 國際住房日",
"1013 國際減輕自然災害日(減災日)",
"1144 感恩節")
/*****************************************************************************
日期計算
*****************************************************************************/
//====================================== 返回農歷 y年的總天數
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));
}
//====================================== 返回農歷 y年閏月的天數
function leapDays(y) {
if(leapMonth(y)) return((lunarInfo[y-1900] & 0x10000)? 30: 29);
else return(0);
}
//====================================== 返回農歷 y年閏哪個月 1-12 , 沒閏返回 0
function leapMonth(y) {
return(lunarInfo[y-1900] & 0xf);
}
//====================================== 返回農歷 y年m月的總天數
function monthDays(y,m) {
return( (lunarInfo[y-1900] & (0x10000>>m))? 30: 29 );
}
//====================================== 算出農歷, 傳入日期控件, 返回農歷日期控件
// 該控件屬性有 .year .month .day .isLeap
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<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;
}
//==============================返回公歷 y年某m+1月的天數
function solarDays(y,m) {
if(m==1)
return(((y%4 == 0) && (y%100 != 0) || (y%400 == 0))? 29: 28);
else
return(solarMonth[m]);
}
//============================== 傳入 offset 返回干支, 0=甲子
function cyclical(num) {
return(Gan[num%10]+Zhi[num%12]);
}
//============================== 陰歷屬性
function calElement(sYear,sMonth,sDay,week,lYear,lMonth,lDay,isLeap,cYear,cMonth,cDay) {
this.isToday = false;
//瓣句
this.sYear = sYear; //公元年4位數字
this.sMonth = sMonth; //公元月數字
this.sDay = sDay; //公元日數字
this.week = week; //星期, 1個中文
//農歷
this.lYear = lYear; //公元年4位數字
this.lMonth = lMonth; //農歷月數字
this.lDay = lDay; //農歷日數字
this.isLeap = isLeap; //是否為農歷閏月?
//八字
this.cYear = cYear; //年柱, 2個中文
this.cMonth = cMonth; //月柱, 2個中文
this.cDay = cDay; //日柱, 2個中文
this.color = '';
this.lunarFestival = ''; //農歷節日
this.solarFestival = ''; //公歷節日
this.solarTerms = ''; //節氣
}
//===== 某年的第n個節氣為幾日(從0小寒起算)
function sTerm(y,n) {
var offDate = new Date( ( 31556925974.7*(y-1900) + sTermInfo[n]*60000 ) + Date.UTC(1900,0,6,2,5) );
return(offDate.getUTCDate());
}
//============================== 返回陰歷控件 (y年,m+1月)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -