成都创新互联网站制作重庆分公司

javascript农历,JavaScript农历节日

javascript 获取输入出阳历和阴历日期时间

script language="JavaScript"

创新互联公司IDC提供业务:绵阳电信机房机柜租用,成都服务器租用,绵阳电信机房机柜租用,重庆服务器租用等四川省内主机托管与主机租用业务;数据中心含:双线机房,BGP机房,电信机房,移动机房,联通机房。

!--

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星期日";

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=RED星期六";

ww=ww;

var ss=parseInt(D.getTime() / 1000);

if (yy100) yy="19"+yy;

for (I=0;IarrLen;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;Idpm.length-1;I++) total[I]=parseInt(dpm[I])+total[I-1];

for (I=dpm.length-1;I0;I--)

if (dayimtotal[I-1])...{

dayim=dayim-total[I-1];

miy=I;

}

bsWeek=ww;

bsDate=yy+"年"+mm+"月";

bsDate2=dd;

bsYear="农历"+Yn[iyear];

bsYear2=Mn[miy]+Dn[dayim-1];

if (ss=Ys[7]||ssYs[0]) bsYear=Yn[7];

function CAL(){

document.write("table border='1' cellspacing='3' width='90' bordercolor='#000000' bgcolor='#FFFFFF' height='110' cellpadding='2'");

document.write("trtd align='center'bfont color=#008040"+bsDate+"/fontbrfont face='Arial' size='6' color=#FF8040"+bsDate2+"/fontbrfont color=#008040span style='FONT-SIZE: 10.5pt'");

document.write(bsWeek+"/spanbr"+"br/bfont color=#9B4E00");

document.write(bsYear+"br"+bsYear2+"/td/tr/table");

}

//--

/script

script language="javascript"CAL();/script

求js详细时间代码,年月日星期时分(秒),阴历日期

function RunGLNL(){ var today=new Date(); var d=new Array("星期日","星期一","星期二","星期三","星期四","星期五","星期六"); var DDDD=(today.getYear()100 ? today.getYear()+1900:today.getYear())+"年"+(today.getMonth()+1)+"月"+today.getDate()+"日"; DDDD = DDDD + " " + d[today.getDay()]; DDDD = DDDD+ " " + (CnDateofDateStr(today)); //DDDD = DDDD+ " " + SolarTerm(today); document.write(DDDD); } function DaysNumberofDate(DateGL){ return parseInt((Date.parse(DateGL)-Date.parse(DateGL.getYear()+"/1/1"))/86400000)+1; } function CnDateofDate(DateGL){ var CnData=new Array( 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 ); var CnMonth=new Array(); var CnMonthDays=new Array(); var CnBeginDay; var LeapMonth; var Bytes=new Array(); var I; var CnMonthData; var DaysCount; var CnDaysCount; var ResultMonth; var ResultDay; var yyyy=DateGL.getYear(); var mm=DateGL.getMonth()+1; var dd=DateGL.getDate(); if(yyyy100) yyyy+=1900; if ((yyyy 1997) || (yyyy 2020)){ return 0; } 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(new Date((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){ return ResultMonth * 100 + ResultDay;} else{return ResultMonth * 100 - ResultDay;} } function CnYearofDate(DateGL){ var YYYY=DateGL.getYear(); var MM=DateGL.getMonth()+1; var CnMM=parseInt(Math.abs(CnDateofDate(DateGL))/100); if(YYYY100) YYYY+=1900; if(CnMMMM) YYYY--; YYYY-=1864; return CnEra(YYYY)+"年"; } function CnMonthofDate(DateGL){ var CnMonthStr=new Array("零","正","二","三","四","五","六","七","八","九","十","十一","腊"); var Month; Month = parseInt(CnDateofDate(DateGL)/100); if (Month 0){return "闰" + CnMonthStr[-Month] + "月";} else{return CnMonthStr[Month] + "月";} } function CnDayofDate(DateGL){ var CnDayStr=new Array("零", "初一", "初二", "初三", "初四", "初五", "初六", "初七", "初八", "初九", "初十", "十一", "十二", "十三", "十四", "十五", "十六", "十七", "十八", "十九", "二十", "廿一", "廿二", "廿三", "廿四", "廿五", "廿六", "廿七", "廿八", "廿九", "三十"); var Day; Day = (Math.abs(CnDateofDate(DateGL)))%100; return CnDayStr[Day]; } function DaysNumberofMonth(DateGL){ var MM1=DateGL.getYear(); MM1100 ? MM1+=1900:MM1; var MM2=MM1; MM1+="/"+(DateGL.getMonth()+1); MM2+="/"+(DateGL.getMonth()+2); MM1+="/1"; MM2+="/1"; return parseInt((Date.parse(MM2)-Date.parse(MM1))/86400000); } function CnEra(YYYY){ var Tiangan=new Array("甲","乙","丙","丁","戊","己","庚","辛","壬","癸"); //var Dizhi=new Array("子(鼠)","丑(牛)","寅(虎)","卯(兔)","辰(龙)","巳(蛇)", //"午(马)","未(羊)","申(猴)","酉(鸡)","戌(狗)","亥(猪)"); var Dizhi=new Array("子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥"); return Tiangan[YYYY%10]+Dizhi[YYYY%12]; } function CnDateofDateStr(DateGL){ if(CnMonthofDate(DateGL)=="零月") return " 请调整您的计算机日期!"; else return "农历:"+CnYearofDate(DateGL)+ " " + CnMonthofDate(DateGL) + CnDayofDate(DateGL); } function SolarTerm(DateGL){ var SolarTermStr=new Array( "小寒","大寒","立春","雨水","惊蛰","春分", "清明","谷雨","立夏","小满","芒种","夏至", "小暑","大暑","立秋","处暑","白露","秋分", "寒露","霜降","立冬","小雪","大雪","冬至"); var DifferenceInMonth=new Array( 1272060,1275495,1281180,1289445,1299225,1310355, 1321560,1333035,1342770,1350855,1356420,1359045, 1358580,1355055,1348695,1340040,1329630,1318455, 1306935,1297380,1286865,1277730,1274550,1271556); var DifferenceInYear=31556926; var BeginTime=new Date(1901/1/1); BeginTime.setTime(947120460000); for(;DateGL.getYear()BeginTime.getYear();){ BeginTime.setTime(BeginTime.getTime()-DifferenceInYear*1000); } for(;DateGL.getYear()BeginTime.getYear();){ BeginTime.setTime(BeginTime.getTime()+DifferenceInYear*1000); } for(var M=0;DateGL.getMonth()BeginTime.getMonth();M++){ BeginTime.setTime(BeginTime.getTime()+DifferenceInMonth[M]*1000); } if(DateGL.getDate()BeginTime.getDate()){ BeginTime.setTime(BeginTime.getTime()+DifferenceInMonth[M]*1000); M++; } if(DateGL.getDate()BeginTime.getDate()){ BeginTime.setTime(BeginTime.getTime()+DifferenceInMonth[M]*1000); M==23?M=0:M++; } var JQ; if(DateGL.getDate()==BeginTime.getDate()){ JQ=" 今天是font color='#FF9999'b"+SolarTermStr[M] + "/b/font"; } else if(DateGL.getDate()==BeginTime.getDate()-1){ JQ=" 明天是font color='#FF9999'b"+SolarTermStr[M] + "/b/font"; } else if(DateGL.getDate()==BeginTime.getDate()-2){ JQ=" 后天是font color='#FF9999'b"+SolarTermStr[M] + "/b/font"; } else{ JQ=" " if(DateGL.getMonth()==BeginTime.getMonth()){ JQ+=" 本月"; } else{ JQ+=" 下月"; } JQ+=BeginTime.getDate()+"日"+"font color='#FF9999'b"+SolarTermStr[M]+"/b/font"; } return JQ; } function CAL() {} RunGLNL(); 详细出处参考:

有谁知道js的农历算法是怎么写出来的

其实我也不懂这个算法,网上粘贴的,我觉得可以不去深究这个公式,反正有现成代码:

设:公元年数-1977(或1901)=4Q+R

则:阴历日期=14Q+10.6(R+1)+年内日期序数-29.5n

(注:式中Q、R、n均为自然数,R4)

例:1994年5月7日的阴历日期为:

1994-1977=17=4×4+1

故:Q=4,R=1 则:5月7日的阴历日期为:

14×4+10.6(1+1)+(31+28+31+30+7)-29.5n

=204.2- 29.5n

然后用29.5去除204.2得商数6......27.2,6即是n值,余数27即是阴历二十七日。

求教js农历闰月算法

你指的是阴历吧?阴历这样算,需要一个字典表:

var lunarLeapMonthOfYear=function(year){

var table=[

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,

0x0a5d0,0x14573,0x052d0,0x0a9a8,0x0e950,0x06aa0,0x0aea6,0x0ab50,0x04b60,

0x0aae4,0x0a570,0x05260,0x0f263,0x0d950,0x05b57,0x056a0,0x096d0,0x04dd5,

0x04ad0,0x0a4d0,0x0d4d4,0x0d250,0x0d558,0x0b540,0x0b5a0,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

];

return table[year-1900]0xf;

}

lunarLeapMonthOfYear(2004);//2004年阴历闰二月

lunarLeapMonthOfYear(2000);//2000年阴历闰四月

lunarLeapMonthOfYear(2001);//2001年没有闰月


名称栏目:javascript农历,JavaScript农历节日
URL链接:http://cxhlcq.com/article/dseesjh.html

其他资讯

在线咨询

微信咨询

电话咨询

028-86922220(工作日)

18980820575(7×24)

提交需求

返回顶部