Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5520757
  • 博文数量: 763
  • 博客积分: 12108
  • 博客等级: 上将
  • 技术积分: 15717
  • 用 户 组: 普通用户
  • 注册时间: 2007-09-28 21:21
个人简介

业精于勤,荒于嬉

文章分类

全部博文(763)

文章存档

2018年(6)

2017年(15)

2016年(2)

2015年(31)

2014年(14)

2013年(87)

2012年(75)

2011年(94)

2010年(190)

2009年(38)

2008年(183)

2007年(28)

分类: 系统运维

2008-05-22 14:31:34

本实例使用JavaScript制作一个简单的日历,该日历可以显示当前的年份、月份、日期和中国传统的农历,并将今天的日期设置为红色。具体实现代码如下:

……

<script language="JavaScript">

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"; <!--1999年354天-->

var year2000="30;30;29;29;30;29;29;30;29;30;30;29"; <!--2000年354天-->

var year2001="30;30;29;30;29;30;29;29;30;29;30;29;30"; <!--2001年384天-->

var year2002="30;30;29;30;29;30;29;29;30;29;30;29"; <!--2002年354天-->

var year2003="30;30;29;30;30;29;30;29;29;30;29;30"; <!--2003年355天-->

var year2004="29;30;29;30;30;29;30;29;30;29;30;29;30"; <!--2004年384天-->

var year2005="29;30;29;30;29;30;30;29;30;29;30;29"; <!--2005年354天-->

var year2006="30;29;30;29;30;30;29;29;30;30;29;29;30";

<!--1999年农历月份表-->

var month1999="正月;二月;三月;四月;五月;六月;七月;八月;九月;十月;十一月;十二月"

<!--2001年农历月份表-->

var month2001="正月;二月;三月;四月;闰四月;五月;六月;七月;八月;九月;十月;十一月;十二月"

<!--2004年农历月份表-->

var month2004="正月;二月;闰二月;三月;四月;五月;六月;七月;八月;九月;十月;十一月;十二月"

<!--2006年农历月份表-->

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

if (ww==1) ww="星期一";

if (ww==2) ww="星期二";

if (ww==3) ww="星期三";

if (ww==4) ww="星期四";

if (ww==5) ww="星期五";

if (ww==6) ww="星期六";

ww=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]);

<!--得到total的值,用来计算农历的日期和月份-->

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+"月"; <!--定义变量记录年和月-->

bsDate2=dd;

bsYear="农历"+Yn[iyear]; <!--得到农历的年份-->

<!---将农历的月份和日合成一个新的变量-->

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

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

function CAL()

{

<!--画第一行表格-->

document.write("

);

<!--输出日期-->

document.write("
"+bsDate+"
"+bsDate2+"
");

<!--输出星期-->

document.write(bsWeek+"
"+"
");

<!--输出农历-->

document.write(bsYear+"
"
+bsYear2+"
");

}

</script>

<script language="JavaScript">CAL();</script>

阅读(2424) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~