用C语言实现万年历

  • 格式:doc
  • 大小:29.00 KB
  • 文档页数:3

用C语言实现万年历——编程

2008-05-23 23:22

说明:本程序的日期输入格式为2005 09,中间为空格;若输入q。则代表退出程序

#include

int IsLeapYear(int); /*定义子函数*/

main()

{

int i,day,year,temp,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("We know that 2000.01.01 is saturday!\n");

printf("Please enter the year and month:"); /*提示信息*/

while(1)

{

scanf("%d %d",&year,&temp);

if(getchar()=='q')

exit(0);

while(Year_Start < year)

{

if(IsLeapYear(Year_Start)) /*调用IsLeapYear函数判断是否为

闰年*/

Per_Year_Days=366; /*闰年一年366天*/

else

Per_Year_Days=365; /*平年一年365天*/

Year_days=Year_days + Per_Year_Days;

Year_Start++;

}

/*输出每个月的日历*/

// for(temp=1;temp<=12;temp++)

{

switch(temp)

{

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("Auguest (%d) \n",year);

break;

case 9:

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

break;

case 10:

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

break;

case 11:

printf("Novermber (%d) \n",year);

break;

case 12:

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

break;

default:printf("error\n");

}

i=Year_days%7;

printf("Mon Tue Wed Thu Fri Sat Sun\n"); /*星期提示信息

*/

if(i!=0)

for(temp_i=0;temp_i

printf(" "); day=1;

if(IsLeapYear(year)&&temp==2)

while(day<=month_day[12])

{

if(day>1)

if(Year_days%7==0)

printf("\n");

if(day>=10)

printf("%d ",day);

else

printf("%d ",day);

Year_days++;

day++;

}

else

while(day<=month_day[temp-1])

{

if(day>1)

if(Year_days%7==0)

printf("\n");

if(day>=10)

printf("%d ",day);

else

printf("%d ",day);

Year_days++;

day++;

} /*依次输入日期*/

printf("\n");

}

}

}

int IsLeapYear(int year) /*判断是否是闰年*/

{

if((year%4==0)&&(year%100!=0)||(year%400==0))

return 1;

else

return 0;

}