<p><br />
<br />
<meta content="text/html; charset=gb2312" http-equiv="Content-Type" /><br />
<br />
<br />
<br />
<SCRIPT language=JavaScript><br />
<!--<br />
function CalConv()<br />
{<br />
FIRSTYEAR = 1998;<br />
LASTYEAR = 2031;<br />
today = new Date();<br />
SolarYear = today.getFullYear();<br />
SolarMonth = today.getMonth() + 1;<br />
SolarDate = today.getDate();<br />
Weekday = today.getDay();<br />
LunarCal = [<br />
new tagLunarCal( 27, 5, 3, 43, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1 ),<br />
new tagLunarCal( 46, 0, 4, 48, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1 ), /* 88 */<br />
new tagLunarCal( 35, 0, 5, 53, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1 ), /* 89 */<br />
new tagLunarCal( 23, 4, 0, 59, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1 ),<br />
new tagLunarCal( 42, 0, 1, 4, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1 ),<br />
new tagLunarCal( 31, 0, 2, 9, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0 ),<br />
new tagLunarCal( 21, 2, 3, 14, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1 ), /* 93 */<br />
new tagLunarCal( 39, 0, 5, 20, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1 ),<br />
new tagLunarCal( 28, 7, 6, 25, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1 ),<br />
new tagLunarCal( 48, 0, 0, 30, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1 ),<br />
new tagLunarCal( 37, 0, 1, 35, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1 ), /* 97 */<br />
new tagLunarCal( 25, 5, 3, 41, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1 ),<br />
new tagLunarCal( 44, 0, 4, 46, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1 ),<br />
new tagLunarCal( 33, 0, 5, 51, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1 ),<br />
new tagLunarCal( 22, 4, 6, 56, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0 ), /* 101 */<br />
new tagLunarCal( 40, 0, 1, 2, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0 ),<br />
new tagLunarCal( 30, 9, 2, 7, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1 ),<br />
new tagLunarCal( 49, 0, 3, 12, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1 ),<br />
new tagLunarCal( 38, 0, 4, 17, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0 ), /* 105 */<br />
new tagLunarCal( 27, 6, 6, 23, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1 ),<br />
new tagLunarCal( 46, 0, 0, 28, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0 ),<br />
new tagLunarCal( 35, 0, 1, 33, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0 ),<br />
new tagLunarCal( 24, 4, 2, 38, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1 ), /* 109 */<br />
new tagLunarCal( 42, 0, 4, 44, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1 ),<br />
new tagLunarCal( 31, 0, 5, 49, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0 ),<br />
new tagLunarCal( 21, 2, 6, 54, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1 ),<br />
new tagLunarCal( 40, 0, 0, 59, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1 ), /* 113 */<br />
new tagLunarCal( 28, 6, 2, 5, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0 ),<br />
new tagLunarCal( 47, 0, 3, 10, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1 ),<br />
new tagLunarCal( 36, 0, 4, 15, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1 ),<br />
new tagLunarCal( 25, 5, 5, 20, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0 ), /* 117 */<br />
new tagLunarCal( 43, 0, 0, 26, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1 ),<br />
new tagLunarCal( 32, 0, 1, 31, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0 ),<br />
new tagLunarCal( 22, 3, 2, 36, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0 ) ];<br />
/* 民国年月日 */<br />
SolarCal = [ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ];<br />
SolarDays = [ 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365, 396, 0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335, 366, 397 ];<br />
<br />
if ( SolarYear <= FIRSTYEAR || SolarYear > LASTYEAR ) return 1;<br />
sm = SolarMonth - 1;<br />
if ( sm < 0 || sm > 11 ) return 2;<br />
leap = GetLeap( SolarYear );<br />
if ( sm == 1 )<br />
d = leap + 28;<br />
else<br />
d = SolarCal[sm];<br />
if ( SolarDate < 1 || SolarDate > d ) return 3;<br />
y = SolarYear - FIRSTYEAR;<br />
acc = SolarDays[ leap*14 + sm ] + SolarDate;<br />
kc = acc + LunarCal[y].BaseKanChih;<br />
Kan = kc % 10;<br />
Chih = kc % 12;<br />
<br />
Age = kc % 60;<br />
if ( Age < 22 )<br />
Age = 22 - Age;<br />
else<br />
Age = 82 - Age;<br />
<br />
if ( acc <= LunarCal[y].BaseDays ) {<br />
y--;<br />
LunarYear = SolarYear - 1;<br />
leap = GetLeap( LunarYear );<br />
sm += 12;<br />
acc = SolarDays[leap*14 + sm] + SolarDate;<br />
}<br />
else<br />
LunarYear = SolarYear;<br />
l1 = LunarCal[y].BaseDays;<br />
for ( i=0; i<13; i++ ) {<br />
l2 = l1 + LunarCal[y].MonthDays[i] + 29;<br />
if ( acc <= l2 ) break;<br />
l1 = l2;<br />
}<br />
LunarMonth = i + 1;<br />
LunarDate = acc - l1;<br />
im = LunarCal[y].Intercalation;<br />
if ( im != 0 && LunarMonth > im ) {<br />
LunarMonth--;<br />
if ( LunarMonth == im ) LunarMonth = -im;<br />
}<br />
if ( LunarMonth > 12 ) LunarMonth -= 12;<br />
today=new Date();<br />
function initArray(){<br />
this.length=initArray.arguments.length<br />
for(var i=0;i<this.length;i++)<br />
this[i+1]=initArray.arguments[i] }<br />
var d=new initArray("星期日","星期一","星期二","星期三","星期四","星期五","星期六");<br />
document.write("", today.getYear(),"年",today.getMonth()+1,"月",today.getDate(),"日",d[today.getDay()+1],"");<br />
months = ["一","二","三","四","五","六","七","八","九","十","十一","十二"];<br />
days = ["初一","初二","初三","初四","初五","初六","初七","初八","初九","初十","十一","十二","十三","十四","十五","十六","十七","十八","十九","二十","廿一","廿二","廿三","廿四","廿五","廿六","廿七","廿八","廿九","三十"];<br />
document.write( "农历"+months[LunarMonth-1]+"月" + days[LunarDate-1] + "");<br />
return 0; <br />
}<br />
/* 是否有闰年, 0 平年, 1 闰年 */<br />
function GetLeap( year )<br />
{<br />
if ( year % 400 == 0 )<br />
return 1;<br />
else if ( year % 100 == 0 )<br />
return 0;<br />
else if ( year % 4 == 0 )<br />
return 1;<br />
else<br />
return 0;<br />
}<br />
function tagLunarCal( d, i, w, k, m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13) {<br />
this.BaseDays = d; <br />
this.Intercalation = i; /* 0代表此年?有闰月 */<br />
this.BaseWeekday = w; /* 民国1月1日星期? 1 */<br />
this.BaseKanChih = k; /* 民国1月1日干支序号减 1 */<br />
this.MonthDays = [ m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13 ]; /* 此??年每月之大小, 0==小月(29日), 1==大月(30日) */<br />
}<br />
//--><br />
</SCRIPT><br />
<font color="#0066cc"><SCRIPT>CalConv();</SCRIPT></font><br />
<br />
</p>