手机
当前位置:查字典教程网 >编程开发 >Javascript教程 >农历与西历对照
农历与西历对照
摘要:复制代码代码如下:农历与西历对照functionclick(){if(event.button==2){alert('版权所有')}}doc...

复制代码 代码如下:

<HTML>

<HEAD>

<TITLE>农历与西历对照</TITLE>

<META

content="农历;阳历;月历;节日;时区;节气;八字;干支;生肖;gregoriansolar;chineselunar;calendar;"

name=keywords>

<METAcontent=Allname=robots>

<METAcontent="gregoriansolarcalendarandchineselunarcalendar"

name=description>

<METAcontent="text/html;charset=gb2312"http-equiv=Content-Type>

<SCRIPTlanguage=JavaScript>

functionclick(){

if(event.button==2){alert('版权所有')}}

document.onmousedown=click

</SCRIPT>

<SCRIPTlanguage=JavaScript>

<;

this.monCyl-=12

}

this.year=i

this.yearCyl=i-1864

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(this.isLeap==false)this.monCyl++

}

if(offset==0&&leap>0&&i==leap+1)

if(this.isLeap)

{this.isLeap=false;}

else

{this.isLeap=true;--i;--this.monCyl;}

if(offset<0){offset+=temp;--i;--this.monCyl;}

this.month=i

this.day=offset+1

}

//==============================传回国历y年某m+1月的天数

functionsolarDays(y,m){

if(m==1)

return(((y%4==0)&&(y%100!=0)||(y%400==0))?29:28)

else

return(solarMonth[m])

}

//==============================传入offset传回干支,0=甲子

functioncyclical(num){

return(Gan[num%10]+Zhi[num%12])

}

//==============================月历属性

functioncalElement(sYear,sMonth,sDay,week,lYear,lMonth,lDay,isLeap,cYear,cMonth,cDay){

this.isToday=false;

//国历

this.sYear=sYear;

this.sMonth=sMonth;

this.sDay=sDay;

this.week=week;

//农历

this.lYear=lYear;

this.lMonth=lMonth;

this.lDay=lDay;

this.isLeap=isLeap;

//干支

this.cYear=cYear;

this.cMonth=cMonth;

this.cDay=cDay;

this.color='';

this.lunarFestival='';//农历节日

this.solarFestival='';//国历节日

this.solarTerms='';//节气

}

//=====某年的第n个节气为几日(从0小寒起算)

functionsTerm(y,n){

varoffDate=newDate((31556925974.7*(y-1900)+sTermInfo[n]*60000)+Date.UTC(1900,0,6,2,5))

return(offDate.getUTCDate())

}

//==============================传回月历物件(y年,m+1月)

functioncalendar(y,m){

varsDObj,lDObj,lY,lM,lD=1,lL,lX=0,tmp1,tmp2

varlDPOS=newArray(3)

varn=0

varfirstLM=0

sDObj=newDate(y,m,1)//当月一日日期

this.length=solarDays(y,m)//国历当月天数

this.firstWeek=sDObj.getDay()//国历当月1日星期几

for(vari=0;i<this.length;i++){

if(lD>lX){

sDObj=newDate(y,m,i+1)//当月一日日期

lDObj=newLunar(sDObj)//农历

lY=lDObj.year//农历年

lM=lDObj.month//农历月

lD=lDObj.day//农历日

lL=lDObj.isLeap//农历是否闰月

lX=lL?leapDays(lY):monthDays(lY,lM)//农历当月最後一天

if(n==0)firstLM=lM

lDPOS[n++]=i-lD+1

}

//sYear,sMonth,sDay,week,

//lYear,lMonth,lDay,isLeap,

//cYear,cMonth,cDay

this[i]=newcalElement(y,m+1,i+1,nStr1[(i+this.firstWeek)%7],

lY,lM,lD++,lL,

cyclical(lDObj.yearCyl),cyclical(lDObj.monCyl),cyclical(lDObj.dayCyl++))

if((i+this.firstWeek)%7==0)this[i].color='red'//周日颜色

if((i+this.firstWeek)%14==13)this[i].color='red'//周休二日颜色

}

//节气

tmp1=sTerm(y,m*2)-1

tmp2=sTerm(y,m*2+1)-1

this[tmp1].solarTerms=solarTerm[m*2]

this[tmp2].solarTerms=solarTerm[m*2+1]

if(m==3)this[tmp1].color='red'//清明颜色

//国历节日

for(iinsFtv)

if(sFtv[i].match(/^(d{2})(d{2})([s*])(.+)$/))

if(Number(RegExp.$1)==(m+1)){

this[Number(RegExp.$2)-1].solarFestival+=RegExp.$4+''

if(RegExp.$3=='*')this[Number(RegExp.$2)-1].color='red'

}

//月周节日

for(iinwFtv)

if(wFtv[i].match(/^(d{2})(d)(d)([s*])(.+)$/))

if(Number(RegExp.$1)==(m+1)){

tmp1=Number(RegExp.$2)

tmp2=Number(RegExp.$3)

this[((this.firstWeek>tmp2)?7:0)+7*(tmp1-1)+tmp2-this.firstWeek].solarFestival+=RegExp.$5+''

}

//农历节日

for(iinlFtv)

if(lFtv[i].match(/^(d{2})(.{2})([s*])(.+)$/)){

tmp1=Number(RegExp.$1)-firstLM

if(tmp1==-11)tmp1=1

if(tmp1>=0&&tmp1<n){

tmp2=lDPOS[tmp1]+Number(RegExp.$2)-1

if(tmp2>=0&&tmp2<this.length){

this[tmp2].lunarFestival+=RegExp.$4+''

if(RegExp.$3=='*')this[tmp2].color='red'

}

}

}

//黑色星期五

if((this.firstWeek+12)%7==5)

this[12].solarFestival+='黑色星期五'

//今日

if(y==tY&&m==tM)this[tD-1].isToday=true;

}

//======================中文日期

functioncDay(d){

vars;

switch(d){

case10:

s='初十';break;

case20:

s='二十';break;

break;

case30:

s='三十';break;

break;

default:

s=nStr2[Math.floor(d/10)];

s+=nStr1[d%10];

}

return(s);

}

///////////////////////////////////////////////////////////////////////////////

varcld;

functiondrawCld(SY,SM){

vari,sD,s,size;

cld=newcalendar(SY,SM);

if(SY>1874&&SY<1909)yDisplay='光绪'+(((SY-1874)==1)?'元':SY-1874)

if(SY>1908&&SY<1912)yDisplay='宣统'+(((SY-1908)==1)?'元':SY-1908)

if(SY>1911&&SY<1950)yDisplay='民国'+(((SY-1911)==1)?'元':SY-1911)

if(SY>1949)yDisplay='共和国'+(((SY-1949)==1)?'元':SY-1949)

GZ.innerHTML=yDisplay+'年农历'+cyclical(SY-1900+36)+'年【'+Animals[(SY-4)%12]+'】';

YMBG.innerHTML=""+SY+"<BR>"+monthName[SM];

for(i=0;i<42;i++){

sObj=eval('SD'+i);

lObj=eval('LD'+i);

sObj.className='';

sD=i-cld.firstWeek;

if(sD>-1&&sD<cld.length){//日期内

sObj.innerHTML=sD+1;

if(cld[sD].isToday)sObj.className='todyaColor';//今日颜色

sObj.style.color=cld[sD].color;//国定假日颜色

if(cld[sD].lDay==1)//显示农历月

lObj.innerHTML='<b>'+(cld[sD].isLeap?'闰':'')+cld[sD].lMonth+'月'+(monthDays(cld[sD].lYear,cld[sD].lMonth)==29?'小':'大')+'</b>';

else//显示农历日

lObj.innerHTML=cDay(cld[sD].lDay);

s=cld[sD].lunarFestival;

if(s.length>0){//农历节日

if(s.length>6)s=s.substr(0,4)+'…';

s=s.fontcolor('red');

}

else{//国历节日

s=cld[sD].solarFestival;

if(s.length>0){

size=(s.charCodeAt(0)>0&&s.charCodeAt(0)<128)?8:4;

if(s.length>size+2)s=s.substr(0,size)+'…';

s=s.fontcolor('blue');

}

else{//廿四节气

s=cld[sD].solarTerms;

if(s.length>0)s=s.fontcolor('limegreen');

}

}

if(s.length>0)lObj.innerHTML=s;

}

else{//非日期

sObj.innerHTML='';

lObj.innerHTML='';

}

}

}

functionchangeCld(){

vary,m;

y=CLD.SY.selectedIndex+1900;

m=CLD.SM.selectedIndex;

drawCld(y,m);

}

functionpushBtm(K){

switch(K){

case'YU':

if(CLD.SY.selectedIndex>0)CLD.SY.selectedIndex--;

break;

case'YD':

if(CLD.SY.selectedIndex<149)CLD.SY.selectedIndex++;

break;

case'MU':

if(CLD.SM.selectedIndex>0){

CLD.SM.selectedIndex--;

}

else{

CLD.SM.selectedIndex=11;

if(CLD.SY.selectedIndex>0)CLD.SY.selectedIndex--;

}

break;

case'MD':

if(CLD.SM.selectedIndex<11){

CLD.SM.selectedIndex++;

}

else{

CLD.SM.selectedIndex=0;

if(CLD.SY.selectedIndex<149)CLD.SY.selectedIndex++;

}

break;

default:

CLD.SY.selectedIndex=tY-1900;

CLD.SM.selectedIndex=tM;

}

changeCld();

}

varToday=newDate();

vartY=Today.getFullYear();

vartM=Today.getMonth();

vartD=Today.getDate();

//////////////////////////////////////////////////////////////////////////////

varwidth="130";

varoffsetx=2;

varoffsety=16;

varx=0;

vary=0;

varsnow=0;

varsw=0;

varcnt=0;

vardStyle;

document.onmousemove=mEvn;

//显示详细日期资料

functionmOvr(v){

vars,festival;

varsObj=eval('SD'+v);

vard=sObj.innerHTML-1;

//sYear,sMonth,sDay,week,

//lYear,lMonth,lDay,isLeap,

//cYear,cMonth,cDay

if(sObj.innerHTML!=''){

sObj.style.cursor='s-resize';

if(cld[d].solarTerms==''&&cld[d].solarFestival==''&&cld[d].lunarFestival=='')

festival='';

else

festival='<TABLEWIDTH=100%BORDER=0CELLPADDING=2CELLSPACING=0BGCOLOR="#CCFFCC"><TR><TD>'+

'<FONTCOLOR="#000000"STYLE="font-size:9pt;">'+cld[d].solarTerms+''+cld[d].solarFestival+''+cld[d].lunarFestival+'</FONT></TD>'+

'</TR></TABLE>';

s='<TABLEWIDTH="130"BORDER=0CELLPADDING="2"CELLSPACING=0BGCOLOR="#000066"><TR><TD>'+

'<TABLEWIDTH=100%BORDER=0CELLPADDING=0CELLSPACING=0><TR><TDALIGN="right"><FONTCOLOR="#ffffff"STYLE="font-size:9pt;">'+

cld[d].sYear+'年'+cld[d].sMonth+'月'+cld[d].sDay+'日<br>星期'+cld[d].week+'<br>'+

'<fontcolor="violet">农历'+(cld[d].isLeap?'闰':'')+cld[d].lMonth+'月'+cld[d].lDay+'日</font><br>'+

'<fontcolor="yellow">'+cld[d].cYear+'年'+cld[d].cMonth+'月'+cld[d].cDay+'日</font>'+

'</FONT></TD></TR></TABLE>'+festival+'</TD></TR></TABLE>';

document.all["detail"].innerHTML=s;

if(snow==0){

dStyle.left=x+offsetx-(width/2);

dStyle.top=y+offsety;

dStyle.visibility="visible";

snow=1;

}

}

}

//清除详细日期资料

functionmOut(){

if(cnt>=1){sw=0}

if(sw==0){snow=0;dStyle.visibility="hidden";}

elsecnt++;

}

//取得位置

functionmEvn(){

x=event.x;

y=event.y;

if(document.body.scrollLeft)

{x=event.x+document.body.scrollLeft;y=event.y+document.body.scrollTop;}

if(snow){

dStyle.left=x+offsetx-(width/2)

dStyle.top=y+offsety

}

}

///////////////////////////////////////////////////////////////////////////

functionchangeTZ(){

CITY.innerHTML=CLD.TZ.value.substr(6)

setCookie("TZ",CLD.TZ.selectedIndex)

}

functiontick(){

vartoday

today=newDate()

Clock.innerHTML=today.toLocaleString().replace(/(年|月)/g,"/").replace(/日/,"");

Clock.innerHTML=TimeAdd(today.toGMTString(),CLD.TZ.value)

window.setTimeout("tick()",1000);

}

functionsetCookie(name,value){

vartoday=newDate()

varexpires=newDate()

expires.setTime(today.getTime()+1000*60*60*24*365)

document.cookie=name+"="+escape(value)+";expires="+expires.toGMTString()

}

functiongetCookie(Name){

varsearch=Name+"="

if(document.cookie.length>0){

offset=document.cookie.indexOf(search)

if(offset!=-1){

offset+=search.length

end=document.cookie.indexOf(";",offset)

if(end==-1)end=document.cookie.length

returnunescape(document.cookie.substring(offset,end))

}

elsereturn""

}

}

/////////////////////////////////////////////////////////

functioninitial(){

dStyle=detail.style;

CLD.SY.selectedIndex=tY-1900;

CLD.SM.selectedIndex=tM;

drawCld(tY,tM);

CLD.TZ.selectedIndex=getCookie("TZ");

changeTZ();

tick();

}

//-->

</SCRIPT>

<SCRIPTlanguage=VBScript>

<>

</SCRIPT>

<STYLE>.todyaColor{

BACKGROUND-COLOR:aqua

}

</STYLE>

<METAcontent="MicrosoftFrontPage4.0"name=GENERATOR></HEAD>

<BODYonload=initial()>

<br>

<SCRIPTlanguage=JavaScript><></SCRIPT>

<DIVid=detailstyle="POSITION:absolute"></DIV>

<CENTER>

<FORMname=CLD>

<TABLE>

<TBODY>

<TR>

<TDalign=middlevAlign=top><fontsize=3color=#ff6633><scriptlanguage="JavaScript">

varenabled=0;today=newDate();

varday;vardate;

if(today.getDay()==0)day="星期日"

if(today.getDay()==1)day="星期一"

if(today.getDay()==2)day="星期二"

if(today.getDay()==3)day="星期三"

if(today.getDay()==4)day="星期四"

if(today.getDay()==5)day="星期五"

if(today.getDay()==6)day="星期六"

document.fgColor="000000";

date="佛历"+(today.getYear()+544)+"年"+

(today.getMonth()+1)+"月"+today.getDate()+"日"+

day+"";

document.write(date)

</script></font><BR><FONTsize=2

style="FONT-SIZE:9pt">本地时间:</FONT><BR><FONTcolor=#000080face=Arial

id=Clocksize=4align="center"></FONT>

<P><><FONTsize=2style="FONT-SIZE:9pt"><SELECT

name=TZonchange=changeTZ()style="FONT-SIZE:9pt"><OPTIONselected

value="-1200安尼威土克、瓜甲兰">国际换日线<OPTIONvalue="-1100中途岛、萨摩亚群岛">萨摩亚<OPTION

value="-1000夏威夷">夏威夷<OPTIONvalue=-0900*阿拉斯加>阿拉斯加<OPTION

value=-0800*太平洋时间(美加)、提亚纳>太平洋<OPTIONvalue="-0700亚历桑那">美国山区<OPTION

value=-0700*山区时间(美加)>美加山区<OPTIONvalue=-0600*萨克其万(加拿大)>加拿大中部<OPTION

value=-0600*墨西哥市、塔克西卡帕>墨西哥<OPTIONvalue=-0600*中部时间(美加)>美加中部<OPTION

value=-0500*波哥大、里玛>南美洲太平洋<OPTIONvalue=-0500*东部时间(美加)>美加东部<OPTION

value=-0500*印第安纳(东部)>美东<OPTIONvalue=-0400*加拉卡斯、拉帕兹>南美洲西部<OPTION

value="-0400*大西洋时间加拿大)">大西洋<OPTIONvalue="-0330新岛(加拿大东岸)">纽芬兰<OPTION

value="-0300波西尼亚">东南美洲<OPTIONvalue="-0300布鲁诺斯爱丽斯、乔治城">南美洲东部<OPTION

value=-0200*大西洋中部>大西洋中部<OPTIONvalue=-0100*亚速尔群岛、维德角群岛>亚速尔<OPTION

value="+0000格林威治时间、都柏林、爱丁堡、伦敦">英国夏令<OPTION

value="+0000莫洛维亚(赖比瑞亚)、卡萨布兰卡">格林威治标准<OPTION

value="+0100巴黎、马德里">罗马<OPTIONvalue="+0100布拉格,华沙,布达佩斯">中欧<OPTION

value="+0100柏林、斯德哥尔摩、罗马、伯恩、布鲁赛尔、维也纳">西欧<OPTION

value="+0200以色列">以色列<OPTIONvalue=+0200*东欧>东欧<OPTION

value=+0200*开罗>埃及<OPTIONvalue=+0200*雅典、赫尔辛基、伊斯坦堡>GFT<OPTION

value=+0200*赫拉雷、皮托里>南非<OPTION

value=+0300*巴格达、科威特、奈洛比(肯亚)、里雅德(沙乌地)>沙乌地阿拉伯<OPTION

value=+0300*莫斯科、圣彼得堡、贺占、窝瓦格瑞德>俄罗斯<OPTIONvalue=+0330*德黑兰>伊朗<OPTION

value=+0400*阿布达比(东阿拉伯)、莫斯凯、塔布理斯(乔治亚共和)>阿拉伯<OPTION

value=+0430*喀布尔>阿富汗<OPTIONvalue="+0500伊斯兰马巴德、克洛奇、伊卡特林堡、塔须肯">西亚<OPTION

value="+0530孟买、加尔各答、马垂斯、新德里、可伦坡">印度<OPTION

value="+0600阿马提、达卡">中亚<OPTIONvalue="+0700曼谷、亚加达、胡志明市">曼谷<OPTION

value="+0800北京、重庆、黑龙江">中国<OPTIONvalue="+0800台湾、香港、新加坡">台北<OPTION

value="+0900东京、大阪、扎幌、汉城、亚库兹(东西伯利亚)">东京<OPTION

value="+0930达尔文">澳洲中部<OPTIONvalue="+1000布里斯本、墨尔本、席德尼">席德尼<OPTION

value="+1000霍巴特">塔斯梅尼亚<OPTIONvalue="+1000关岛、莫斯比港、海威">西太平洋<OPTION

value=+1100*马哥大、所罗门群岛、新卡伦多尼亚>太平洋中部<OPTION

value="+1200威灵顿、奥克兰">纽西兰<OPTION

value="+1200斐济、肯加塔、马歇尔群岛">斐济</OPTION></SELECT>时间</FONT><FONTid=tSave

style="COLOR:red;FONT-FAMILY:Wingdings;FONT-SIZE:18pt"></FONT><BR><BR><FONT

style="COLOR:green;FONT-FAMILY:Webdings;FONT-SIZE:120pt">û</FONT><BR><FONT

id=CITY

style="COLOR:blue;FONT-FAMILY:'宋体';FONT-SIZE:9pt;WIDTH:150px"></FONT></P></TD>

<TDalign=middle>

<DIVstyle="POSITION:absolute;TOP:30px;Z-INDEX:-1"><FONTid=YMBG

style="COLOR:#f0f0f0;FONT-FAMILY:'ArialBlack';FONT-SIZE:100pt">0000<BR>JUN</FONT>

</DIV>

<TABLEborder=0>

<TBODY>

<TR>

<TDbgColor=#000080colSpan=7><FONTcolor=#ffffffsize=2

style="FONT-SIZE:9pt">西历<SELECTname=SYonchange=changeCld()

style="FONT-SIZE:9pt">

<SCRIPTlanguage=JavaScript><></SCRIPT>

</SELECT>年<SELECTname=SMonchange=changeCld()

style="FONT-SIZE:9pt">

<SCRIPTlanguage=JavaScript><></SCRIPT>

</SELECT>月</FONT><FONTcolor=#ffffffface=宋体id=GZ

size=4></FONT><BR></TD></TR>

<TRalign=middlebgColor=#e0e0e0>

<TDwidth=54>日</TD>

<TDwidth=54>一</TD>

<TDwidth=54>二</TD>

<TDwidth=50>三</TD>

<TDwidth=54>四</TD>

<TDwidth=54>五</TD>

<TDwidth=54>六</TD></TR>

<SCRIPTlanguage=JavaScript><></SCRIPT>

</TBODY></TABLE></TD>

<TDalign=middlevAlign=topwidth=60><BR><BR><BR><BR><BUTTON

onclick="pushBtm('YU')"style="FONT-SIZE:9pt">年↑</BUTTON><BR><BUTTON

onclick="pushBtm('YD')"style="FONT-SIZE:9pt">年↓</BUTTON>

<P><BUTTONonclick="pushBtm('MU')"

style="FONT-SIZE:9pt">月↑</BUTTON><BR><BUTTONonclick="pushBtm('MD')"

style="FONT-SIZE:9pt">月↓</BUTTON>

<P><BUTTONonclick="pushBtm('')"style="FONT-SIZE:9pt">当月</BUTTON>

<P><INPUTonclick="javascript:history.back(1)"style="FONT-SIZE:9pt"type=buttonvalue=返回>

</P></TD></TR></TBODY></TABLE></FORM></CENTER>

</BODY></HTML>

【农历与西历对照】相关文章:

根据内容自动调整弹出窗口大小的JS解决方案

Javascript高级应用:文件操作篇

对联浮动广告效果

名词解释:JavaScript、Jscript、VBScript、ASP

document 和 document.all 分别什么时候用

解决未知尺寸的图片撑破页面的问题

javascript相关事件的几个概念

iscroll.js的上拉下拉刷新时无法回弹的解决方法

微信浏览器内置JavaScript对象WeixinJSBridge使用实例

JavaScript通过Date-Mask将日期转换成字符串的方法

精品推荐
分类导航