用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;
}