SoFunction
Updated on 2025-03-10

A JS code that can display the lunar calendar


<script language="JavaScript">
<!--
var bsYear;  
var bsDate;  
var bsWeek;  
var arrLen=8;    //Array length
var sValue=0;    //The number of seconds of that year
var dayiy=0;    //What day is that year
var miy=0;    //Subscript for the month
var iyear=0;    //Year mark
var dayim=0;    //What day of that month
var spd=86400;     //The number of seconds per day

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="First month; February; March; April; May; June; July; August; September; October; November; December"
var month2001="First month; February; March; April; Leap month; May; June; July; August; September; October; November; December"
var month2004="First month; February; Leap February; March; April; May; June; July; August; September; October; November; December"
var month2006="First month; February; March; April; May; June; July; Leap July; August; September; October; November; December"
var Dn="First first; second; third; fourth; fifth; fifth; sixth; sixth; seventh; eighth; nineth; tenth; eleventh; twelve; thirteen; fourteen; fifteen; sixteen; seventeen; seventeen; eighth; nineteen; twenty-one; twenty-two; twenty-three; twenty-four; twenty-five; twenty-six; twenty-six; twenty-six; twenty-seven; twenty-eight; twenty-nine; twenty-nine; twenty-nine; twenty-two; twenty-three; twenty-four; twenty-five; twenty-six; twenty-seven; twenty-eight; twenty-nine; thirty";

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);   //The name of the Lunar Year
Yn[0]="Jimao year";Yn[1]="Gengchen year";Yn[2]="Xinsi year";
Yn[3]="Ynwu year";Yn[4]="Guiwei year";Yn[5]="Jiashen year";
Yn[6]="Yu You year";Yn[7]="Bingxu year";
var D=new Date();
var yy=();
var mm=()+1;
var dd=();
var ww=();
if (ww==0) ww="<font color=RED>Sun";
if (ww==1) ww="Monday";
if (ww==2) ww="Tuesday";
if (ww==3) ww="Wednesday";
if (ww==4) ww="Thursday";
if (ww==5) ww="Friday";
if (ww==6) ww="<font color=RED>Saturday";
ww=ww;
var ss=parseInt(() / 1000);
if (yy<100) yy="19"+yy;

for (I=0;I<arrLen;I++)
    if (ss>=Ys[I])...{
        iyear=I;
sValue=ss-Ys[I];    //The number of seconds of that year
        }
dayiy=parseInt(sValue/spd)+1;    //The number of days of that year

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=(";");

var Mn=month1999;
if (iyear==2) Mn=month2001;
if (iyear==5) Mn=month2004;
if (iyear==7) Mn=month2006;
Mn=(";");

var Dn="First first; second; third; fourth; fifth; fifth; sixth; sixth; seventh; eighth; nineth; tenth; eleventh; twelve; thirteen; fourteen; fifteen; sixteen; seventeen; seventeen; eighth; nineteen; twenty-one; twenty-two; twenty-three; twenty-four; twenty-five; twenty-six; twenty-six; twenty-six; twenty-seven; twenty-eight; twenty-nine; twenty-nine; twenty-nine; twenty-two; twenty-three; twenty-four; twenty-five; twenty-six; twenty-seven; twenty-eight; twenty-nine; thirty";
Dn=(";");

dayim=dayiy;

var total=new Array(13);
total[0]=parseInt(dpm[0]);
for (I=1;I<-1;I++) total[I]=parseInt(dpm[I])+total[I-1];
for (I=-1;I>0;I--)
    if (dayim>total[I-1])...{
        dayim=dayim-total[I-1];
        miy=I;
        }
bsWeek=ww;
bsDate=yy+"year"+mm+"month";
bsDate2=dd;
bsYear="lunar calendar"+Yn[iyear];
bsYear2=Mn[miy]+Dn[dayim-1];
if (ss>=Ys[7]||ss<Ys[0]) bsYear=Yn[7];
function CAL()...{
("<table border='1' cellspacing='3' width='90' bordercolor='#000000' bgcolor='#FFFFFF' height='110' cellpadding='2'");
("<tr><td align='center'><b><font color=#008040>"+bsDate+"</font><br><font face='Arial' size='6' color=#FF8040>"+bsDate2+"</font><br><font color=#008040><span style='FONT-SIZE: 10.5pt'>");
(bsWeek+"</span><br>"+"<br></b><font color=#9B4E00>");
(bsYear+"<br>"+bsYear2+"</td></tr></table>");
}
//-->
</script>
          <script language="javascript">CAL();</script>