代码收集,支持闰月的js农历日历代码

function RunGLNL() ... {
vartoday=newDate();
vard=newArray("星期日","星期一","星期二","星期三","星期四","星期五","星期六");
varDDDD=(today.getYear()<100?today.getYear()+1900:today.getYear())+""+(today.getMonth()+1)+""+today.getDate()+"";
DDDD
=DDDD+""+d[today.getDay()];
DDDD
=DDDD+"<br/>"+(CnDateofDateStr(today));
//DDDD=DDDD+""+SolarTerm(today);
document.write(DDDD);
}

function DaysNumberofDate(DateGL) ... {
returnparseInt((Date.parse(DateGL)-Date.parse(DateGL.getYear()+"/1/1"))/86400000)+1;
}

function CnDateofDate(DateGL) ... {
varCnData=newArray(
0x16,0x2a,0xda,0x00,0x83,0x49,0xb6,0x05,0x0e,0x64,0xbb,0x00,0x19,0xb2,0x5b,0x00,
0x87,0x6a,0x57,0x04,0x12,0x75,0x2b,0x00,0x1d,0xb6,0x95,0x00,0x8a,0xad,0x55,0x02,
0x15,0x55,0xaa,0x00,0x82,0x55,0x6c,0x07,0x0d,0xc9,0x76,0x00,0x17,0x64,0xb7,0x00,
0x86,0xe4,0xae,0x05,0x11,0xea,0x56,0x00,0x1b,0x6d,0x2a,0x00,0x88,0x5a,0xaa,0x04,
0x14,0xad,0x55,0x00,0x81,0xaa,0xd5,0x09,0x0b,0x52,0xea,0x00,0x16,0xa9,0x6d,0x00,
0x84,0xa9,0x5d,0x06,0x0f,0xd4,0xae,0x00,0x1a,0xea,0x4d,0x00,0x87,0xba,0x55,0x04
);
varCnMonth=newArray();
varCnMonthDays=newArray();
varCnBeginDay;
varLeapMonth;
varBytes=newArray();
varI;
varCnMonthData;
varDaysCount;
varCnDaysCount;
varResultMonth;
varResultDay;
varyyyy=DateGL.getYear();
varmm=DateGL.getMonth()+1;
vardd=DateGL.getDate();
if(yyyy<100)yyyy+=1900;
if((yyyy<1997)||(yyyy>2020))...{
return0;
}

Bytes[
0]=CnData[(yyyy-1997)*4];
Bytes[
1]=CnData[(yyyy-1997)*4+1];
Bytes[
2]=CnData[(yyyy-1997)*4+2];
Bytes[
3]=CnData[(yyyy-1997)*4+3];
if((Bytes[0]&0x80)!=0)...{CnMonth[0]=12;}
else...{CnMonth[0]=11;}
CnBeginDay
=(Bytes[0]&0x7f);
CnMonthData
=Bytes[1];
CnMonthData
=CnMonthData<<8;
CnMonthData
=CnMonthData|Bytes[2];
LeapMonth
=Bytes[3];
for(I=15;I>=0;I--)...{
CnMonthDays[
15-I]=29;
if(((1<<I)&CnMonthData)!=0)...{
CnMonthDays[
15-I]++;}

if(CnMonth[15-I]==LeapMonth)...{
CnMonth[
15-I+1]=-LeapMonth;}

else...{
if(CnMonth[15-I]<0)...{CnMonth[15-I+1]=-CnMonth[15-I]+1;}
else...{CnMonth[15-I+1]=CnMonth[15-I]+1;}
if(CnMonth[15-I+1]>12)...{CnMonth[15-I+1]=1;}
}

}

DaysCount
=DaysNumberofDate(DateGL)-1;
if(DaysCount<=(CnMonthDays[0]-CnBeginDay))...{
if((yyyy>1901)&&(CnDateofDate(newDate((yyyy-1)+"/12/31"))<0))...{
ResultMonth
=-CnMonth[0];}

else...{ResultMonth=CnMonth[0];}
ResultDay
=CnBeginDay+DaysCount;
}

else...{
CnDaysCount
=CnMonthDays[0]-CnBeginDay;
I
=1;
while((CnDaysCount<DaysCount)&&(CnDaysCount+CnMonthDays[I]<DaysCount))...{
CnDaysCount
+=CnMonthDays[I];
I
++;
}

ResultMonth
=CnMonth[I];
ResultDay
=DaysCount-CnDaysCount;
}

if(ResultMonth>0)...{
returnResultMonth*100+ResultDay;}

else...{returnResultMonth*100-ResultDay;}
}

function CnYearofDate(DateGL) ... {
varYYYY=DateGL.getYear();
varMM=DateGL.getMonth()+1;
varCnMM=parseInt(Math.abs(CnDateofDate(DateGL))/100);
if(YYYY<100)YYYY+=1900;
if(CnMM>MM)YYYY--;
YYYY
-=1864;
returnCnEra(YYYY)+"";
}

function CnMonthofDate(DateGL) ... {
varCnMonthStr=newArray("","","","","","","","","","","","","");
varMonth;
Month
=parseInt(CnDateofDate(DateGL)/100);
if(Month<0)...{return""+CnMonthStr[-Month]+"";}
else...{returnCnMonthStr[Month]+"";}
}

function CnDayofDate(DateGL) ... {
varCnDayStr=newArray("",
"初一","初二","初三","初四","初五",
"初六","初七","初八","初九","初十",
"十一","十二","十三","十四","十五",
"十六","十七","十八","十九","二十",
"廿一","廿二","廿三","廿四","廿五",
"廿六","廿七"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值