大家来帮我个忙啊求带有阴历的js我给个效果啊!我这个js阴历是错误的郁闷!
就是这个效果的
2007年7月18日 星期三 丙戌年 七月初四
这个页面左上角那个效果
我这里有代码但是现在这个阴历是错误的啊。我看好像代码就些到了2006年的阴历07年的就错了!
代码如下:
var bsYear;
var bsDate;
var bsWeek;
var arrLen=8; //数组长度
var sValue=0; //当年的秒数
var dayiy=0; //当年第几天
var miy=0; //月份的下标
var iyear=0; //年份标记
var dayim=0; //当月第几天
var spd=86400; //每天的秒数
var year1999= "30;29;29;30;29;29;30;29;30;30;30;29 "; //354
var year2000= "30;30;29;29;30;29;29;30;29;30;30;29 "; //354
var year2001= "30;30;29;30;29;30;29;29;30;29;30;29;30 "; //384
var year2002= "30;30;29;30;29;30;29;29;30;29;30;29 "; //354
var year2003= "30;30;29;30;30;29;30;29;29;30;29;30 "; //355
var year2004= "29;30;29;30;30;29;30;29;30;29;30;29;30 "; //384
var year2005= "29;30;29;30;29;30;30;29;30;29;30;29 "; //354
var year2006= "30;29;30;29;30;30;29;29;30;30;29;29;30 ";
var month1999= "正月;二月;三月;四月;五月;六月;七月;八月;九月;十月;十一月;十二月 "
var month2001= "正月;二月;三月;四月;闰四月;五月;六月;七月;八月;九月;十月;十一月;十二月 "
var month2004= "正月;二月;闰二月;三月;四月;五月;六月;七月;八月;九月;十月;十一月;十二月 "
var month2006= "正月;二月;三月;四月;五月;六月;七月;闰七月;八月;九月;十月;十一月;十二月 "
var Dn= "初一;初二;初三;初四;初五;初六;初七;初八;初九;初十;十一;十二;十三;十四;十五;十六;十七;十八;十九;二十;廿一;廿二;廿三;廿四;廿五;廿六;廿七;廿八;廿九;三十 ";
var Ys=new Array(arrLen);
Ys[0]=919094400;Ys[1]=949680000;Ys[2]=980265600;
Ys[3]=1013443200;Ys[4]=1044028800;Ys[5]=1074700800;
Ys[6]=1107878400;Ys[7]=1138464000;
var Yn=new Array(arrLen); //农历年的名称
Yn[0]= "己卯年 ";Yn[1]= "庚辰年 ";Yn[2]= "辛巳年 ";
Yn[3]= "壬午年 ";Yn[4]= "癸未年 ";Yn[5]= "甲申年 ";
Yn[6]= "乙酉年 ";Yn[7]= "丙戌年 ";
var D=new Date();
var yy=D.getYear();
var mm=D.getMonth()+1;
var dd=D.getDate();
var ww=D.getDay();
if (ww==0) ww= " <font color=RED > 星期日 </font > ";
if (ww==1) ww= "星期一 ";
if (ww==2) ww= "星期二 ";
if (ww==3) ww= "星期三 ";
if (ww==4) ww= "星期四 ";
if (ww==5) ww= "星期五 ";
if (ww==6) ww= " <font color=green > 星期六 </font > ";
ww=ww;
var ss=parseInt(D.getTime() / 1000);
if (yy <100) yy= "19 "+yy;
for (i=0;i <arrLen;i++)
if (ss > =Ys[ i]){
iyear=i;
sValue=ss-Ys[ i]; //当年的秒数
}
dayiy=parseInt(sValue/spd)+1; //当年的天数
var dpm=year1999;
if (iyear==1) dpm=year2000;
if (iyear==2) dpm=year2001;
if (iyear==3) dpm=year2002;
if (iyear==4) dpm=year2003;
if (iyear==5) dpm=year2004;
if (iyear==6) dpm=year2005;
if (iyear==7) dpm=year2006;
dpm=dpm.split( "; ");
var Mn=month1999;
if (iyear==2) Mn=month2001;
if (iyear==5) Mn=month2004;
if (iyear==7) Mn=month2006;
Mn=Mn.split( "; ");
var Dn= "初一;初二;初三;初四;初五;初六;初七;初八;初九;初十;十一;十二;十三;十四;十五;十六;十七;十八;十九;二十;廿一;廿二;廿三;廿四;廿五;廿六;廿七;廿八;廿九;三十 ";
Dn=Dn.split( "; ");
dayim=dayiy;
var total=new Array(13);
total[0]=parseInt(dpm[0]);
for (i=1;i <dpm.length-1;i++) total[ i]=parseInt(dpm[ i])+total[i-1];
for (i=dpm.length-1;i > 0;i--)
if (dayim > total[i-1]){
dayim=dayim-total[i-1];
miy=i;
}
bsWeek=ww;
bsDate=yy+ "年 "+mm+ "月 "+dd+ "日 ";
bsYear= "农历 "+Yn[iyear];
bsYear2=Mn[miy]+Dn[dayim-1];
if (ss > =Ys[7] ¦ ¦ss <Ys[0]) bsYear=Yn[7];
function time(){
document.write( " <font style= "font-size:10pt;font-family: 宋体 " > "+bsDate+ " ");
document.write(bsWeek);
document.write( " "+bsYear+ " "+bsYear2+ " </font > ");
}
高手帮下我啊可着急啊!
[解决办法]
你去下载一个梅花雪日历控件看看他的代码就知道了.
你这个比较长..没啥时间看哟.嘿嘿.
[解决办法]
这个程序有BUG,原来的2007-2-17就不对了
按照原有的程序加了2007年是这样的,不过也还是有原来的那个BUG的,等会再看看
<script language=javascript>
var bsYear;
var bsDate;
var bsWeek;
var arrLen=9; //数组长度
var sValue=0; //当年的秒数
var dayiy=0; //当年第几天
var miy=0; //月份的下标
var iyear=0; //年份标记
var dayim=0; //当月第几天
var spd=86400; //每天的秒数
var year1999= "30;29;29;30;29;29;30;29;30;30;30;29 "; //354
var year2000= "30;30;29;29;30;29;29;30;29;30;30;29 "; //354
var year2001= "30;30;29;30;29;30;29;29;30;29;30;29;30 "; //384
var year2002= "30;30;29;30;29;30;29;29;30;29;30;29 "; //354
var year2003= "30;30;29;30;30;29;30;29;29;30;29;30 "; //355
var year2004= "29;30;29;30;30;29;30;29;30;29;30;29;30 "; //384
var year2005= "29;30;29;30;29;30;30;29;30;29;30;29 "; //354
var year2006= "30;29;30;29;30;30;29;29;30;30;29;29;30 ";
var year2007= "29;29;30;29;29;30;29;30;30;30;29;30 "; //354
var month1999= "正月;二月;三月;四月;五月;六月;七月;八月;九月;十月;十一月;十二月 "
var month2001= "正月;二月;三月;四月;闰四月;五月;六月;七月;八月;九月;十月;十一月;十二月 "
var month2004= "正月;二月;闰二月;三月;四月;五月;六月;七月;八月;九月;十月;十一月;十二月 "
var month2006= "正月;二月;三月;四月;五月;六月;七月;闰七月;八月;九月;十月;十一月;十二月 "
var Dn= "初一;初二;初三;初四;初五;初六;初七;初八;初九;初十;十一;十二;十三;十四;十五;十六;十七;十八;十九;二十;廿一;廿二;廿三;廿四;廿五;廿六;廿七;廿八;廿九;三十 ";
var Ys=new Array(arrLen);
Ys[0]=919094400;Ys[1]=949680000;Ys[2]=980265600;
Ys[3]=1013443200;Ys[4]=1044028800;Ys[5]=1074700800;
Ys[6]=1107878400;Ys[7]=1138464000;Ys[8]=1171728000;
var Yn=new Array(arrLen); //农历年的名称
Yn[0]= "己卯年 ";Yn[1]= "庚辰年 ";Yn[2]= "辛巳年 ";
Yn[3]= "壬午年 ";Yn[4]= "癸未年 ";Yn[5]= "甲申年 ";
Yn[6]= "乙酉年 ";Yn[7]= "丙戌年 ";Yn[8]= "丁亥年 ";
var D=new Date(2007,1,15);
var yy=D.getYear();
var mm=D.getMonth()+1;
var dd=D.getDate();
var ww=D.getDay();
if (ww==0) ww= " <font color=RED > 星期日 </font > ";
if (ww==1) ww= "星期一 ";
if (ww==2) ww= "星期二 ";
if (ww==3) ww= "星期三 ";
if (ww==4) ww= "星期四 ";
if (ww==5) ww= "星期五 ";
if (ww==6) ww= " <font color=green > 星期六 </font > ";
ww=ww;
var ss=parseInt(D.getTime()/1000);
if (yy <100)yy= "19 "+yy;
for (i=0;i <arrLen;i++)
if (ss > =Ys[i]){
iyear=i;
sValue=ss-Ys[i]; //当年的秒数
}
dayiy=parseInt(sValue/spd)+1; //当年的天数
var dpm=year1999;
if (iyear==1) dpm=year2000;
if (iyear==2) dpm=year2001;
if (iyear==3) dpm=year2002;
if (iyear==4) dpm=year2003;
if (iyear==5) dpm=year2004;
if (iyear==6) dpm=year2005;
if (iyear==7) dpm=year2006;
if (iyear==8) dpm=year2007;
dpm=dpm.split( "; ");
var Mn=month1999;
if (iyear==2) Mn=month2001;
if (iyear==5) Mn=month2004;
if (iyear==7) Mn=month2006;
Mn=Mn.split( "; ");
var Dn= "初一;初二;初三;初四;初五;初六;初七;初八;初九;初十;十一;十二;十三;十四;十五;十六;十七;十八;十九;二十;廿一;廿二;廿三;廿四;廿五;廿六;廿七;廿八;廿九;三十 ";
Dn=Dn.split( "; ");
dayim=dayiy;
var total=new Array(13);
total[0]=parseInt(dpm[0]);
for (i=1;i <dpm.length-1;i++) total[i]=parseInt(dpm[i])+parseInt(total[i-1]);
for (i=dpm.length-1;i > 0;i--)
if (dayim > total[i-1]){
dayim=dayim-total[i-1];
miy=i;
}
bsWeek=ww;
bsDate=yy+ "年 "+mm+ "月 "+dd+ "日 ";
bsYear= "农历 "+Yn[iyear];
bsYear2=Mn[miy]+Dn[dayim-1];
if(ss > =Ys[8] &&ss <Ys[0]) bsYear=Yn[8];
function time(){
document.write( " <font style= \ "font-size:10pt;font-family: 宋体 \ " > "+bsDate+ " ");
document.write(bsWeek);
document.write( " "+bsYear+ " "+bsYear2+ " </font > ");
}
time()
</script>
[解决办法]
这样吧,我把要改的地方加颜色标注出来了,你按照这个改下吧,把下面的代码存成HTML,直接看,会有颜色标出来的
var bsYear;
<br> var bsDate;
<br> var bsWeek;
<br> var arrLen=9; //数组长度 <font style= "color:red "> 这里要加,加的是一共的年数 </font>
<br> var sValue=0; //当年的秒数
<br> var dayiy=0; //当年第几天
<br> var miy=0; //月份的下标
<br> var iyear=0; //年份标记
<br> var dayim=0; //当月第几天
<br> var spd=86400; //每天的秒数
<br>
<br> var year1999= "30;29;29;30;29;29;30;29;30;30;30;29 "; //354
<br> var year2000= "30;30;29;29;30;29;29;30;29;30;30;29 "; //354
<br> var year2001= "30;30;29;30;29;30;29;29;30;29;30;29;30 "; //384
<br> var year2002= "30;30;29;30;29;30;29;29;30;29;30;29 "; //354
<br> var year2003= "30;30;29;30;30;29;30;29;29;30;29;30 "; //355
<br> var year2004= "29;30;29;30;30;29;30;29;30;29;30;29;30 "; //384
<br> var year2005= "29;30;29;30;29;30;30;29;30;29;30;29 "; //354
<br> var year2006= "30;29;30;29;30;29;30;29;30;30;29;30;30 ";
<br> var year2007= "29;29;30;29;29;30;29;30;30;30;29;30 "; //354
<br> <font style= "color:red "> 这里要加,加的是每个月的最大天数 </font>
<br>
<br> var month1999= "正月;二月;三月;四月;五月;六月;七月;八月;九月;十月;十一月;十二月 "
<br> var month2001= "正月;二月;三月;四月;闰四月;五月;六月;七月;八月;九月;十月;十一月;十二月 "
<br> var month2004= "正月;二月;闰二月;三月;四月;五月;六月;七月;八月;九月;十月;十一月;十二月 "
<br> var month2006= "正月;二月;三月;四月;五月;六月;七月;闰七月;八月;九月;十月;十一月;十二月 "
<br> <font style= "color:red "> 这里闰年要加,加的是润年的月份 </font>
<br> var Dn= "初一;初二;初三;初四;初五;初六;初七;初八;初九;初十;十一;十二;十三;十四;十五;十六;十七;十八;十九;二十;廿一;廿二;廿三;廿四;廿五;廿六;廿七;廿八;廿九;三十 ";
<br>
<br> var Ys=new Array(arrLen);
<br> Ys[0]=919094400;Ys[1]=949680000;Ys[2]=980265600;
<br> Ys[3]=1013443200;Ys[4]=1044028800;Ys[5]=1074700800;
<br> Ys[6]=1107878400;Ys[7]=1138464000;Ys[8]=1171728000;
<br> <font style= "color:red "> 这里要加,加的是当年正月初一的getTime()值 </font>
<br>
<br> var Yn=new Array(arrLen); //农历年的名称
<br> Yn[0]= "己卯年 ";Yn[1]= "庚辰年 ";Yn[2]= "辛巳年 ";
<br> Yn[3]= "壬午年 ";Yn[4]= "癸未年 ";Yn[5]= "甲申年 ";
<br> Yn[6]= "乙酉年 ";Yn[7]= "丙戌年 ";Yn[8]= "丁亥年 ";
<br> <font style= "color:red "> 这里要加,加的是年份的农历名称 </font>
<br> var D=new Date();
<br> var yy=D.getYear();
<br> var mm=D.getMonth()+1;
<br> var dd=D.getDate();
<br> var ww=D.getDay();
<br> if (ww==0) ww= " <font color=RED > 星期日 </font > ";
<br> if (ww==1) ww= "星期一 ";
<br> if (ww==2) ww= "星期二 ";
<br> if (ww==3) ww= "星期三 ";
<br> if (ww==4) ww= "星期四 ";
<br> if (ww==5) ww= "星期五 ";
<br> if (ww==6) ww= " <font color=green > 星期六 </font > ";
<br> ww=ww;
<br> var ss=parseInt(D.getTime()/1000);
<br> if (yy <100)yy= "19 "+yy;
<br> for (i=0;i <arrLen;i++)
<br> if (ss > =Ys[i]){
<br> iyear=i;
<br> sValue=ss-Ys[i]; //当年的秒数
<br> }
<br> dayiy=parseInt(sValue/spd)+1; //当年的天数
<br> var dpm=year1999;
<br> if (iyear==1) dpm=year2000;
<br> if (iyear==2) dpm=year2001;
<br> if (iyear==3) dpm=year2002;
<br> if (iyear==4) dpm=year2003;
<br> if (iyear==5) dpm=year2004;
<br> if (iyear==6) dpm=year2005;
<br> if (iyear==7) dpm=year2006;
<br> if (iyear==8) dpm=year2007;
<br> <font style= "color:red "> 这里要加,加的是年的定义值 </font>
<br> dpm=dpm.split( "; ");
<br>
<br> var Mn=month1999;
<br> if (iyear==2) Mn=month2001;
<br> if (iyear==5) Mn=month2004;
<br> if (iyear==7) Mn=month2006;
<br> <font style= "color:red "> 这里闰年要加,加的是月的定义值 </font>
<br> Mn=Mn.split( "; ");
<br> var Dn= "初一;初二;初三;初四;初五;初六;初七;初八;初九;初十;十一;十二;十三;十四;十五;十六;十七;十八;十九;二十;廿一;廿二;廿三;廿四;廿五;廿六;廿七;廿八;廿九;三十 ";
<br> Dn=Dn.split( "; ");
<br>
<br> dayim=dayiy;
<br> var total=new Array(13);
<br> total[0]=parseInt(dpm[0]);
<br> for (i=1;i <dpm.length-1;i++) total[i]=parseInt(dpm[i])+parseInt(total[i-1]);
<br> for (i=dpm.length-1;i > 0;i--){
<br> if (dayim > total[i-1]){
<br> dayim=dayim-total[i-1];
<br> miy=i;
<br>
<br> }
<br> }
<br>
<br> bsWeek=ww;
<br> bsDate=yy+ "年 "+mm+ "月 "+dd+ "日 ";
<br> bsYear= "农历 "+Yn[iyear];
<br> bsYear2=Mn[miy]+Dn[dayim-1];
<br> if(ss > =Ys[8] &&ss <Ys[0]) bsYear=Yn[8];
<br> <font style= "color:red "> 这里要改下 </font>
<br> function time(){
<br> document.write( " <font style= \ "font-size:10pt;font-family: 宋体 \ " > "+bsDate+ " ");
<br> document.write(bsWeek);
<br> document.write( " "+bsYear+ " "+bsYear2+ " </font > ");
<br> }
<br> time()
<br>