当前位置:首页 > 代码 > 正文

日历表代码(电子日历代码)

admin 发布:2022-12-19 23:58 124


今天给各位分享日历表代码的知识,其中也会对电子日历代码进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

C语言的简单日历代码,求大神帮忙!!

#includestdio.h

#include string.h

#include time.h

#include math.h

#include windows.h

int year , month , day ;

int day_of_month[12] = {31,28,31,30,31,30,31,31,30,31,30,31};

//char wek[7]={'周日','周一','周二','周三','周四','周五','周六'};

int current_year,current_month,current_day;

/************************************通用关键函数**************************************************/

void cls_screen()

{

printf("请按任意键返回!\n");

getchar();

getchar();

system("cls");

}

void get_current_time() //获取当前时间

{

time_t timep;

struct tm *p;

time(timep);

p = gmtime(timep);

current_year=1900+p-tm_year;

current_month=1+p-tm_mon;

current_day=p-tm_mday;

}

int judgement (int y)

{

if (y % 400 == 0 || (y % 100 !=0 y %4 ==0))

return 1 ;

else return 0 ;

}

int show_week (int year , int month , int day)

{

/*

公式:w=(y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1)%7

*/

int w ,k; //记录周几

int year_last=year %100,c=year/100 , m = month;

if (month==1 )

{

year_last-=1 ;

m=13 ;

}

else if (month==2)

{

year_last-=1;

m=14;

}

w = (year_last + year_last/4 + c/4 - 2*c +26*(m+1)/10+day-1); // abs 绝对值

if (w0)

{

k=(w%7+7)%7;

}

else k=w%7;

return k ;

}

/************************************第一部分**************************************************/

void print_year (int year)

{

int i , k ,x ,first_week;

printf ("请输入想要查询的年月(格式如2012):");

scanf ("%d",year);

printf("=======================%d年===========================\n",year);

printf("\n");

if (judgement(year))

{

day_of_month[1]=29;

}

else day_of_month[1]=28;

for (i=1 ; i 13 ; i++)

{

first_week = show_week(year,i,1);

printf("=====================%d月日历如下========================\n",i);

printf ("Sun\tMon\tTue\tWed\tThu\tFri\tSat\n");

for (x=1;x=first_week;x++)

{

printf("\t");

if (x%7==0) printf ("\n");

}

for (k=1;k=day_of_month[i-1];k++)

{

printf("%d\t",k);

if (x%7==0) printf ("\n");

x++;

}

printf("\n");

printf("\n");

printf("\n");

}

}

/************************************第二部分**************************************************/

void print_year_month ()

{

int k ,x ,first_week;

printf ("请输入想要查询的年月(格式如2012 12):");

do

{

scanf ("%d %d",year,month);

if (month1||month12)

{

printf("您输入的月份有误哦~请输入正确的月份\n");

printf ("请输入想要查询的年月(格式如2012 12):");

}

}while(1month||month12);

printf("=====================%d年%d月======================\n",year,month);

if (judgement(year))

{

day_of_month[1]=29;

}

else day_of_month[1]=28;

first_week = show_week(year,month,1);

printf ("Sun\tMon\tTue\tWed\tThu\tFri\tSat\n");

for (x=1;x=first_week;x++)

{

printf("\t");

if (x%7==0) printf ("\n");

}

for (k=1;k=day_of_month[month-1];k++)

{

printf("%d\t",k);

if (x%7==0) printf ("\n");

x++;

}

printf("\n");

}

/************************************第三部分**************************************************/

int year_before_sumdays (int year,int month, int day)

{

int days=0 ,i,judgement1;

int temp_day=0 ,sum_days; //

//printf ("%d,%d\n",current_year,current_month);

judgement1=judgement(year);

/*===================比当前少=====================*/

if (year current_year )

{

for (i = year+1;i current_year ;i++)

{

if (judgement(i))

{

days=days+356;

}

else days+=355;

}

for (i = month+1;i=12;i++)

{

days=days+day_of_month[i-1];

}

days = days + day_of_month[month-1]-day; //指定日子距离当年结束还有多少天

//printf("去年还有%d\n",days);

for (i = 0;i current_month-1;i++ )

{

if (judgement1)

{

day_of_month[1]=29;

}

temp_day = temp_day + day_of_month[i];

}

//当前日子是这一年的多少天

temp_day = temp_day + current_day;

//printf("今天是第%d天\n",temp_day);

sum_days=temp_day + days ;

}

/*===================比当前多=====================*/

if (year current_year )

{

for (i =current_year+1;i current_year ;i++)

{

if (judgement(i))

{

days=days+356;

}

else days+=355;

}

for (i = current_month+1;i=12;i++)

{

days=days+day_of_month[i-1];

}

days = days + day_of_month[month-1]-current_day; //指定日子距离当年结束还有多少天

//printf("去年还有%d\n",days);

for (i = 0;i month-1;i++ )

{

if (judgement1)

{

day_of_month[1]=29;

}

temp_day = temp_day + day_of_month[i];

}

//当前日子是这一年的多少天

temp_day = temp_day + day;

//printf("今天是第%d天\n",temp_day);

sum_days=temp_day + days ;

}

/*===================比当前一样=====================*/

if (year == current_year )

{

if(month current_month)

{

for (i=month+1;icurrent_month;i++)

{

if (judgement1)

{

day_of_month[1]=29;

}

days = days + day_of_month[i];

}

sum_days = days + current_day + day_of_month[month-1] - day ;

}

if (monthcurrent_month)

{

for (i=current_month+1;imonth;i++)

{

if (judgement1)

{

day_of_month[1]=29;

}

days = days + day_of_month[i];

}

sum_days = days + day + day_of_month[month-1] - current_day ;

printf("%d\n",days);

}

if (month==current_month)

{

sum_days= abs(day-current_day);

}

}

return sum_days ;

}

void print(int year,int month,int day)

{

int week;

printf ("请输入想要查询的年月(格式如2012 12 12 ):");

do

{

scanf ("%d %d %d",year,month,day);

if (judgement(year))

{

day_of_month[1]=29;

}

printf("\n");

if (day=0 || day day_of_month[month-1])

printf ("%d月没有%d,请重新输入(格式如2012 12 12 ):",month,day);

}while(day=0 || day day_of_month[month-1]);

week=show_week (year,month ,day);

printf("\n");

switch(month)//判断查找天是否阳历节日先由月份判断是否有节日的月份再由日判断是否为节日

{

case 1:switch(day)

{

case 1:printf("元旦") ;break;

default:printf("不是阳历节日");

}break;

case 2:switch(day)

{

case 14:printf("情人节(Valentines Day)");break;

default:printf("不是阳历节日");

}break;

case 3:switch(day)

{

case 8:printf("妇女节¨(Women's Day)");break;

case 12:printf("植树节(Arbor Day)");break;

default:printf("不是阳历节日");

}break;

case 4:switch(day)

{

case 1:printf("愚人节(April Fools Day)");break;

case 5:printf("清明节(Tomb-sweeping Day)");break;

default:printf("不是阳历节日");

}break;

case 5:switch(day)

{

case 1:printf("劳动节(Labor Day)");break;

case 4:printf("中国青年节(Chinese Youth Day)");

default:printf("不是阳历节日");

}break;

case 6:switch(day)

{

case 1:printf("儿童节(Children's Day)");break;

default:printf("不是阳历节日");

}break;

case 8:switch(day)

{

case 1:printf("建军节(the Army's Day)");break;

default:printf("不是阳历节日");

}break;

case 9:switch(day)

{

case 10:printf("教师节(Teacher's Day)");break;

default:printf("不是阳历节日");

}break;

case 10:switch(day)

{

case 1:printf("国庆节(National Day)");break;

case 31:printf("万圣节(Helloween Day)");break;

default:printf("不是阳历节日");

}break;

case 12:switch(day)

{

case 25 :printf("圣诞节(Christmas Day)");break;

default:printf("不是阳历节日");

}break;

}

printf("\n");

printf("%d年%d月%d号是:",year,month,day);

switch(week)//判断所查找天是星期几

{

case 0:printf("Sunday");break;

case 1:printf("Monday");break;

case 2:printf("Tuesday");break;

case 3:printf("Wednesday");;break;

case 4:printf("Thursday");break;

case 5:printf("Friday");break;

case 6:printf("Saturday");break;

}

printf("\n");

printf("距离今天有%d天\n",year_before_sumdays ( year, month, day));

printf("\n");

}

/********************************************************************************************/

void main ()

{

int choice,year,month,day,flag=1;

char c , k;

for(;1;)//显示程序菜单,为永真,每次查找完回到程序菜单ì

{

printf("===================================菜单选项===================================\n");

printf("请选择:\n");

printf("* * * * * * * * 1.查找某一年的年历 * * * * * * * *\n");

printf("* * * * * * * * 2.查找某一月的月历 * * * * * * * *\n");

printf("* * * * * * * * 3.查找某一天 * * * * * * * *\n");

printf("* * * * * * * * 0.退出 * * * * * * * *\n");

printf("=========================================================

Excel 如何使用VBA来制作日历表

使用VBA编辑。代码及效果图如下:

Sub 日历()

Dim WkName As String

Dim i, j, k, l As Long

Dim strStar As Date

Dim strEnd As Date

strStar = InputBox("日历编辑起始日期", "日历编辑", #1/1/2017#)

If strStar  False Then

strEnd = InputBox("日历编辑终止日期", "日历编辑", #5/1/2017#)

If strEnd  False Then

WkName = WeekdayName(Weekday(Format(strStar, "yyyy/mm/dd")))

Range("A1") = Year(strStar)  "年"  Month(strStar)  "月"

Range("A1:G1").Merge

Range("A1:G1").HorizontalAlignment = xlHAlignCenter

Range("A2:G2") = Array("星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六")

For i = 3 To 1000

  t = Month(strStar)

  For j = 1 To 7

      For k = 1 To 7

   If WkName = Cells(2, k) Then

   Cells(i, k) = Day(strStar)

   Exit For

   End If

      Next

      strStar = strStar + 1

 If strStar  strEnd Then

 Exit Sub

 End If

      WkName = WeekdayName(Weekday(strStar))

      l = Month(strStar)

  If l  t Then

  i = i + 2

  Range("A"  i  ":G"  i) = Array("星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六")

  Range("A"  i - 1) = Year(strStar)  "年"  Month(strStar)  "月"

  Range("A"  i - 1  ":G"  i - 1).Merge

  Range("A"  i - 1  ":G"  i - 1).HorizontalAlignment = xlHAlignCenter

    Exit For

  End If

  If k = 7 Then

     Exit For

  End If

Next

Next

End If

End If

End Sub

日历代码

万年历代码:

iframe

src=""

width="509"

height=433

marginwidth="0"

marginheight="0"

hspace="0"

vspace="0"

frameborder="0"

scrolling="no"/iframe

老黄历的源代码:

IFRAME

style="BORDER-RIGHT:

#000000

1px

dotted;

BORDER-TOP:

#000000

1px

dotted;

BORDER-LEFT:

#000000

1px

dotted;

BORDER-BOTTOM:

#000000

1px

dotted"

border=0

name=nongli

marginHeight=0

src=""

frameBorder=no

width=149

scrolling=no

height=140/IFRAME

最新日历代码(包括日历、星期、现在时间)

IFRAME

border=0

name=www1.xise.cn

align=center

marginWidth=0

marginHeight=0

src=""

frameBorder=0

width=146

scrolling=no

height=183/IFRAME

代码一:IFRAME

style="BORDER-RIGHT:

#000000

1px

dotted;

BORDER-TOP:

#000000

1px

dotted;

BORDER-LEFT:

#000000

1px

dotted;

BORDER-BOTTOM:

#000000

1px

dotted"

border=0

name=nongli

marginHeight=0

src=""

frameBorder=no

width=149

scrolling=no

height=140/IFRAME

代码二:iframe

name="jiro23"

src=""

width="500"

height="500"/iframe

代码三:iframe

scrolling=no

height=170

width=165

frameborder=0

marginHeight=0

marginWidth=0

src=;/iframe

具体步骤是:复制代码---管理博客-----新增空白面板-----钩选显示源代码(出现钩号,同时文档里出现DIV的字样)----粘贴代码----钩选显示源代码(钩号消失)-----保存新增面板----定制个人首页----选取新增个人面板----保存设置

求C语言编日历源代码的详细说明

/*

稍微改了下对齐格式,加了注释

*/

/*

1、闰年的算法:

如果某年能被4整除但不能被100整除,

或者能被400整除,

则该年是闰年.

用表达式表示就是

(year

%4

==

year%100

!=

0)

||

(year%400

==

0)

2、计算某一天是星期几:

已知1900年的1月1号为星期一,

然后就可以用某一天和1900年的1月1号相差的天数对7取余来求星期,

本题是用的公元1年的1月1号作为基准

*/

#include

stdio.h

#includeconio.h

#includestdlib.h

int

IsLeapYear(int);

//函数定义

void

main()

{

int

i;

int

day;

int

year;

int

temp;

int

temp_i;

long

int

Year_days

=

0;

int

Year_Start

=

1;

int

Per_Year_Days;

int

month_day[]={31,28,31,30,31,30,31,31,30,31,30,31,29};

printf("Please

enter

the

year:

");

scanf("%d",year);

//输入年份

while(Year_Start

year)

//从公元1年开始执行while循环,

该年的一月一号为星期一

{

if(

IsLeapYear(

Year_Start

)

)

Per_Year_Days

=

366;

//如果是闰年,

则一年有366天

else

Per_Year_Days

=

365;

//如果不是闰年,

则一年有365天

Year_days

=

Year_days

+

Per_Year_Days;

//Year_days为从公元1年到输入年份的前一年的天数的总和

Year_Start++;

}

for(

temp

=

1;

temp

=12;

temp++

)

//temp从1到12,

对应一年内12个月

{

switch(

temp

)

//用switch语句将temp和12个月对应起来

{

case

1:

printf("

January(%d)\n",year);

//一月

break;

case

2:

printf("

February(%d)\n",year);

//二月

break;

case

3:

printf("

March(%d)\n",year);

//三月

break;

case

4:

printf("

April(%d)\n",year);

//四月

break;

case

5:

printf("

May(%d)\n",year);

//五月

break;

case

6:

printf("

June(%d)\n",year);

//六月

break;

case

7:

printf("

July(%d)\n",year);

//七月

break;

case

8:

printf("

August(%d)\n",year);

//八月

break;

case

9:

printf("

September(%d)\n",year);

//九月

break;

case

10:

printf("

October(%d)\n",year);

//十月

break;

case

11:

printf("

November(%d)\n",year);

//十一月

break;

case

12:

printf("

December(%d)\n",year);

//十二月

break;

}

i

=

Year_days

%

7;

//每个星期有7天,

故用每年的天数对7取余

printf("Mon\tTue\tWed\tThu\tFri\tSat\tSun\n");

if(

i

!=

)

//如果余数不为零

for(

temp_i

=

0;

temp_i

i;

temp_i++)

printf("\t");

//则打印空格(这里用\t代替空格,

更加美观),

空格数为i

day

=

1;

//初始化day为1,

为下面的while循环做准备

if(

IsLeapYear(year)

temp

==

2)

//如果输入的年份是闰年,

并且月份为2

while(

day

=

month_day[12]

)

//day为一循环变量,

取值为1-365(闰年的话为1-366)

{

if(

day

1

)

//如果天数大于一

if(

Year_days

%

7

==

)

//如果是星期日,

则换行

printf("\n");

if(

day

=

10

)

printf("%d\t",day);

//打印天数+空格

else

printf("%d\t",day);

Year_days++;

day++;

}

else

//如果不满足"输入的年份是闰年,

并且月份为2"

while

(day

=

month_day[temp-1])

{

if(

day

1

)

if(

Year_days

%

7

==

)

printf("\n");

if(

day

=10

)

printf("%d\t",day);

else

printf("%d\t",day);

Year_days++;

day++;

}

printf("\n");

if(

getch()

==

'q'

)

//如果输入为q,

则退出程序

exit(0);

}

getch();

//每按一次键,

打印一个月份

}

int

IsLeapYear(

int

year

)

{

//判断是否是闰年,

是则返回1,

否则返回0

if

((year

%4

==

0)

(year

%

100

!=

0)

||

(year

%

400

==

0)

)

return

1;

else

return

0;

}

求 网页日历代码

html

head

meta http-equiv="Content-Type" content="text/html; charset=gb2312"

title日历代码/title

/head

body

SCRIPT language=JavaScript

!--

var lunarInfo=new Array(

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)

var solarMonth=new Array(31,28,31,30,31,30,31,31,30,31,30,31);

var Gan=new Array("甲","乙","丙","丁","戊","己","庚","辛","壬","癸");

var Zhi=new Array("子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥");

var Animals=new Array("鼠","牛","虎","兔","龙","蛇","马","羊","猴","鸡","狗","猪");

var solarTerm = new Array("小寒","大寒","立春","雨水","惊蛰","春分","清明","谷雨","立夏","小满","芒种","夏至","小暑","大暑","立秋","处暑","白露","秋分","寒露","霜降","立冬","小雪","大雪","冬至")

var sTermInfo = new Array(0,21208,42467,63836,85337,107014,128867,150921,173149,195551,218072,240693,263343,285989,308563,331033,353350,375494,397447,419210,440795,462224,483532,504758)

var nStr1 = new Array('日','一','二','三','四','五','六','七','八','九','十')

var nStr2 = new Array('初','十','廿','卅',' ')

var monthName = new Array("JAN","FEB","MAR","APR","MAY","JUN","JUL","AUG","SEP","OCT","NOV","DEC");

//国历节日 *表示放假日

var sFtv = new Array(

"0101*元旦",

"0214 情人节",

"0303 我生日",

"0308 妇女节",

"0312 植树节",

"0315 消费者权益日",

"0317 St. Patrick's",

"0401 愚人节",

"0501 劳动节",

"0504 青年节",

"0512 护士节",

"0512 茵生日",

"0601 儿童节",

"0614 Flag Day",

"0701 建党节 香港回归纪念",

"0703 炎黄在线诞辰",

"0718 托普诞辰",

"0801 建军节",

"0808 父亲节",

"0909 毛泽东逝世纪念",

"0910 教师节",

"0928 孔子诞辰",

"1001*国庆节",

"1006 老人节",

"1024 联合国日",

"1111 Veteran's / Remembrance Day",

"1112 孙中山诞辰纪念",

"1220 澳门回归纪念",

"1225 Christmas Day",

"1226 毛泽东诞辰纪念")

//农历节日 *表示放假日

var lFtv = new Array(

"0101*春节",

"0115 元宵节",

"0505 端午节",

"0707 七夕情人节",

"0715 中元节",

"0815 中秋节",

"0909 重阳节",

"1208 腊八节",

"1224 小年",

"0100*除夕")

//某月的第几个星期几

var wFtv = new Array(

"0131 Martin Luther King Day",

"0231 President's Day",

"0520 母亲节",

"0530 Armed Forces Day",

"0531 Victoria Day",

"0716 合作节",

"0730 被奴役国家周",

"0811 Civic Holiday",

"0911 Labor Holiday",

"1021 Columbus Day",

"1144 Thanksgiving")

/*****************************************************************************

日期计算

*****************************************************************************/

//====================================== 传回农历 y年的总天数

function lYearDays(y) {

var i, sum = 348

for(i=0x8000; i0x8; i=1) sum += (lunarInfo[y-1900] i)? 1: 0

return(sum+leapDays(y))

}

//====================================== 传回农历 y年闰月的天数

function leapDays(y) {

if(leapMonth(y)) return((lunarInfo[y-1900] 0x10000)? 30: 29)

else return(0)

}

//====================================== 传回农历 y年闰哪个月 1-12 , 没闰传回 0

function leapMonth(y) {

return(lunarInfo[y-1900] 0xf)

}

//====================================== 传回农历 y年m月的总天数

function monthDays(y,m) {

return( (lunarInfo[y-1900] (0x10000m))? 30: 29 )

}

//====================================== 算出农历, 传入日期物件, 传回农历日期物件

// 该物件属性有 .year .month .day .isLeap .yearCyl .dayCyl .monCyl

function Lunar(objDate) {

var i, leap=0, temp=0

var baseDate = new Date(1900,0,31)

var offset = (objDate - baseDate)/86400000

this.dayCyl = offset + 40

this.monCyl = 14

for(i=1900; i2050 offset0; i++) {

temp = lYearDays(i)

offset -= temp

this.monCyl += 12

}

if(offset0) {

offset += temp;

i--;

this.monCyl -= 12

}

this.year = i

this.yearCyl = i-1864

leap = leapMonth(i) //闰哪个月

this.isLeap = false

for(i=1; i13 offset0; i++) {

//闰月

if(leap0 i==(leap+1) this.isLeap==false)

{ --i; this.isLeap = true; temp = leapDays(this.year); }

else

{ temp = monthDays(this.year, i); }

//解除闰月

if(this.isLeap==true i==(leap+1)) this.isLeap = false

offset -= temp

if(this.isLeap == false) this.monCyl ++

}

if(offset==0 leap0 i==leap+1)

if(this.isLeap)

{ this.isLeap = false; }

else

{ this.isLeap = true; --i; --this.monCyl;}

if(offset0){ offset += temp; --i; --this.monCyl; }

this.month = i

this.day = offset + 1

}

//==============================传回国历 y年某m+1月的天数

function solarDays(y,m) {

if(m==1)

return(((y%4 == 0) (y%100 != 0) || (y%400 == 0))? 29: 28)

else

return(solarMonth[m])

}

//============================== 传入 offset 传回干支, 0=甲子

function cyclical(num) {

return(Gan[num%10]+Zhi[num%12])

}

//============================== 月历属性

function calElement(sYear,sMonth,sDay,week,lYear,lMonth,lDay,isLeap,cYear,cMonth,cDay) {

this.isToday = false;

//国历

this.sYear = sYear;

this.sMonth = sMonth;

this.sDay = sDay;

this.week = week;

//农历

this.lYear = lYear;

this.lMonth = lMonth;

this.lDay = lDay;

this.isLeap = isLeap;

//干支

this.cYear = cYear;

this.cMonth = cMonth;

this.cDay = cDay;

this.color = '';

this.lunarFestival = ''; //农历节日

this.solarFestival = ''; //国历节日

this.solarTerms = ''; //节气

}

//===== 某年的第n个节气为几日(从0小寒起算)

function sTerm(y,n) {

var offDate = new Date( ( 31556925974.7*(y-1900) + sTermInfo[n]*60000 ) + Date.UTC(1900,0,6,2,5) )

return(offDate.getUTCDate())

}

//============================== 传回月历物件 (y年,m+1月)

function calendar(y,m) {

var sDObj, lDObj, lY, lM, lD=1, lL, lX=0, tmp1, tmp2

var lDPOS = new Array(3)

var n = 0

var firstLM = 0

sDObj = new Date(y,m,1) //当月一日日期

this.length = solarDays(y,m) //国历当月天数

this.firstWeek = sDObj.getDay() //国历当月1日星期几

for(var i=0;ithis.length;i++) {

if(lDlX) {

sDObj = new Date(y,m,i+1) //当月一日日期

lDObj = new Lunar(sDObj) //农历

lY = lDObj.year //农历年

lM = lDObj.month //农历月

lD = lDObj.day //农历日

lL = lDObj.isLeap //农历是否闰月

lX = lL? leapDays(lY): monthDays(lY,lM) //农历当月最后一天

if(n==0) firstLM = lM

lDPOS[n++] = i-lD+1

}

//sYear,sMonth,sDay,week,

//lYear,lMonth,lDay,isLeap,

//cYear,cMonth,cDay

this[i] = new calElement(y, m+1, i+1, nStr1[(i+this.firstWeek)%7],

lY, lM, lD++, lL,

cyclical(lDObj.yearCyl) ,cyclical(lDObj.monCyl), cyclical(lDObj.dayCyl++) )

if((i+this.firstWeek)%7==0) this[i].color = 'red' //周日颜色

if((i+this.firstWeek)%14==13) this[i].color = 'red' //周休二日颜色

}

//节气

tmp1=sTerm(y,m*2 )-1

tmp2=sTerm(y,m*2+1)-1

this[tmp1].solarTerms = solarTerm[m*2]

this[tmp2].solarTerms = solarTerm[m*2+1]

if(m==3) this[tmp1].color = 'red' //清明颜色

//国历节日

for(i in sFtv)

if(sFtv[i].match(/^(\d{2})(\d{2})([\s\*])(.+)$/))

if(Number(RegExp.$1)==(m+1)) {

this[Number(RegExp.$2)-1].solarFestival += RegExp.$4 + ' '

if(RegExp.$3=='*') this[Number(RegExp.$2)-1].color = 'red'

}

//月周节日

for(i in wFtv)

if(wFtv[i].match(/^(\d{2})(\d)(\d)([\s\*])(.+)$/))

if(Number(RegExp.$1)==(m+1)) {

tmp1=Number(RegExp.$2)

tmp2=Number(RegExp.$3)

this[((this.firstWeektmp2)?7:0) + 7*(tmp1-1) + tmp2 - this.firstWeek].solarFestival += RegExp.$5 + ' '

}

//农历节日

for(i in lFtv)

if(lFtv[i].match(/^(\d{2})(.{2})([\s\*])(.+)$/)) {

tmp1=Number(RegExp.$1)-firstLM

if(tmp1==-11) tmp1=1

if(tmp1 =0 tmp1n) {

tmp2 = lDPOS[tmp1] + Number(RegExp.$2) -1

if( tmp2 = 0 tmp2this.length) {

this[tmp2].lunarFestival += RegExp.$4 + ' '

if(RegExp.$3=='*') this[tmp2].color = 'red'

}

}

}

//黑色星期五

if((this.firstWeek+12)%7==5)

this[12].solarFestival += '黑色星期五 '

//今日

if(y==tY m==tM) this[tD-1].isToday = true;

}

//====================== 中文日期

function cDay(d){

var s;

switch (d) {

case 10:

s = '初十'; break;

case 20:

s = '二十'; break;

break;

case 30:

s = '三十'; break;

break;

default :

s = nStr2[Math.floor(d/10)];

s += nStr1[d%10];

}

return(s);

}

///////////////////////////////////////////////////////////////////////////////

var cld;

function drawCld(SY,SM) {

var i,sD,s,size;

cld = new calendar(SY,SM);

if(SY1874 SY1909) yDisplay = '光绪' + (((SY-1874)==1)?'元':SY-1874)

if(SY1908 SY1912) yDisplay = '宣统' + (((SY-1908)==1)?'元':SY-1908)

if(SY1911 SY1950) yDisplay = '民国' + (((SY-1911)==1)?'元':SY-1911)

// if(SY1949) yDisplay = '共和国' + (((SY-1949)==1)?'元':SY-1949)

// GZ.innerHTML = yDisplay +'年 农历' + cyclical(SY-1900+36) + '年   【'+Animals[(SY-4)%12]+'】';

if(SY1949) yDisplay = ''

GZ.innerHTML = yDisplay +' 农历' + cyclical(SY-1900+36) + '年   【'+Animals[(SY-4)%12]+'】';

YMBG.innerHTML = " " + SY + "BR " + monthName[SM];

for(i=0;i42;i++) {

sObj=eval('SD'+ i);

lObj=eval('LD'+ i);

sObj.className = '';

sD = i - cld.firstWeek;

if(sD-1 sDcld.length) { //日期内

sObj.innerHTML = sD+1;

if(cld[sD].isToday) sObj.className = 'todyaColor'; //今日颜色

sObj.style.color = cld[sD].color; //国定假日颜色

if(cld[sD].lDay==1) //显示农历月

lObj.innerHTML = 'b'+(cld[sD].isLeap?'闰':'') + cld[sD].lMonth + '月' + (monthDays(cld[sD].lYear,cld[sD].lMonth)==29?'小':'大')+'/b';

else //显示农历日

lObj.innerHTML = cDay(cld[sD].lDay);

s=cld[sD].lunarFestival;

if(s.length0) { //农历节日

if(s.length6) s = s.substr(0, 4)+'…';

s = s.fontcolor('red');

}

else { //国历节日

s=cld[sD].solarFestival;

if(s.length0) {

size = (s.charCodeAt(0)0 s.charCodeAt(0)128)?8:4;

if(s.lengthsize+2) s = s.substr(0, size)+'…';

s = s.fontcolor('blue');

}

else { //廿四节气

s=cld[sD].solarTerms;

if(s.length0) s = s.fontcolor('limegreen');

}

}

if(s.length0) lObj.innerHTML = s;

}

else { //非日期

sObj.innerHTML = '';

lObj.innerHTML = '';

}

}

}

function changeLong()

{

var y,m,ly,lm,id,im,iy,yangy,yangm,deltm,miny,tt;

CLD.SY.selectedIndex=CLD.D1.selectedIndex;

CLD.SM.selectedIndex=CLD.D2.selectedIndex;

yangm=0;yangy=0;

tt=true;

while (tt)

{

yangm=0;yangy=0;

changeCld();

for(i=0;i42;i++)

{

sD = i - cld.firstWeek;

if(sD-1 sDcld.length)

{ //日期内

if ((cld[sD].lMonth==CLD.D2.selectedIndex+1)(cld[sD].lYear==CLD.D1.selectedIndex+1900))

{

yangy=CLD.SY.selectedIndex+1900; yangm=CLD.SM.selectedIndex ;

tt=false;

break;

}

}

}

if (!tt) break;

pushBtm('MD');

changeCld();

// alert(CLD.SY.selectedIndex+" "+CLD.SM.selectedIndex);

for(i=0;i42;i++)

{

sD = i - cld.firstWeek;

if(sD-1 sDcld.length)

{ //日期内

if ((cld[sD].lMonth==CLD.D2.selectedIndex+1)(cld[sD].lYear==CLD.D1.selectedIndex+1900))

{

yangy=CLD.SY.selectedIndex+1900; yangm=CLD.SM.selectedIndex ;

tt=false;

break;

}

}

}

break;

}

// alert(yangy+" "+yangm);

//CLD.SY.selectedIndex=yangy;//-1900;

//pushBtm('YU');

//pushBtm('YD');

CLD.SM.selectedIndex=yangm;

pushBtm('MD');

pushBtm('MU');

}

//changeLong end

function changeCld() {

var y,m;

y=CLD.SY.selectedIndex+1900;

m=CLD.SM.selectedIndex;

drawCld(y,m);

}

function pushBtm(K) {

switch (K){

case 'YU' :

if(CLD.SY.selectedIndex0) CLD.SY.selectedIndex--;

break;

case 'YD' :

if(CLD.SY.selectedIndex149) CLD.SY.selectedIndex++;

break;

case 'MU' :

if(CLD.SM.selectedIndex0) {

CLD.SM.selectedIndex--;

}

else {

CLD.SM.selectedIndex=11;

if(CLD.SY.selectedIndex0) CLD.SY.selectedIndex--;

}

break;

case 'MD' :

if(CLD.SM.selectedIndex11) {

CLD.SM.selectedIndex++;

}

else {

CLD.SM.selectedIndex=0;

if(CLD.SY.selectedIndex149) CLD.SY.selectedIndex++;

}

break;

default :

CLD.SY.selectedIndex=tY-1900;

CLD.SM.selectedIndex=tM;

}

changeCld();

}

var Today = new Date();

var tY = Today.getFullYear();

var tM = Today.getMonth();

var tD = Today.getDate();

//////////////////////////////////////////////////////////////////////////////

var width = "130";

var offsetx = 2;

var offsety = 16;

var x = 0;

var y = 0;

var snow = 0;

var sw = 0;

var cnt = 0;

var dStyle;

document.onmousemove = mEvn;

//显示详细日期资料

function mOvr(v) {

var s,festival;

var sObj=eval('SD'+ v);

var d=sObj.innerHTML-1;

//sYear,sMonth,sDay,week,

//lYear,lMonth,lDay,isLeap,

//cYear,cMonth,cDay

if(sObj.innerHTML!='') {

sObj.style.cursor = 's-resize';

if(cld[d].solarTerms == '' cld[d].solarFestival == '' cld[d].lunarFestival == '')

festival = '';

else

festival = 'TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=0 BGCOLOR="#CCFFCC"TRTD'+

'FONT COLOR="#000000" STYLE="font-size:9pt;"'+cld[d].solarTerms + ' ' + cld[d].solarFestival + ' ' + cld[d].lunarFestival+'/FONT/TD'+

'/TR/TABLE';

s= 'TABLE WIDTH="130" BORDER=0 CELLPADDING="2" CELLSPACING=0 BGCOLOR="#000066"TRTD' +

'TABLE WIDTH=100% BORDER=0 CELLPADDING=0 CELLSPACING=0TRTD ALIGN="right"FONT COLOR="#ffffff" STYLE="font-size:9pt;"'+

cld[d].sYear+' 年 '+cld[d].sMonth+' 月 '+cld[d].sDay+' 日br星期'+cld[d].week+'br'+

'font color="violet"农历'+(cld[d].isLeap?'闰 ':' ')+cld[d].lMonth+' 月 '+cld[d].lDay+' 日/fontbr'+

'font color="yellow"'+cld[d].cYear+'年 '+cld[d].cMonth+'月 '+cld[d].cDay + '日/font'+

'/FONT/TD/TR/TABLE'+ festival +'/TD/TR/TABLE';

document.all["detail"].innerHTML = s;

if (snow == 0) {

dStyle.left = x+offsetx-(width/2);

dStyle.top = y+offsety;

dStyle.visibility = "visible";

snow = 1;

}

}

}

日历表代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于电子日历代码、日历表代码的信息别忘了在本站进行查找喔。

版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;

本文地址:http://ahzz.com.cn/post/31323.html


取消回复欢迎 发表评论:

分享到

温馨提示

下载成功了么?或者链接失效了?

联系我们反馈

立即下载