由用户输入一个年份,计算机将根据用户输入的年份输出这一年所有月份的日历。关键是要确定该年是否是闰年,以及求某个月第一天是星期几。

运行效果:

c语言判断某年某月多少天,输出某一年所有月份的日历(1)

代码:

#include <stdio.h>

#include <stdlib.h>

int monthDay(int,int);//获取某个月的天数

int isLeapYear(int);//判断某一年是否是闰年

int main()

{

int days,weekDay,year,month=1,d,i;

printf("请输入年:\n");

scanf("%d",&year);

//计算某一年某个月第一天星期几

days=year-1 (year-1)/400 (year-1)/4-(year-1)/100;

while(month<=12)

{

printf("%d-%d\n",year,month);

printf("Sun\tMon\tTues\tWed\tThur\tFir\tSat\n");

d=1,i=1;

weekDay=(days 1)%7;//求星期几

while(i<=weekDay)

{

printf("\t");

i ;

}

while(d<=monthDay(month,year))

{

weekDay=(days 1)%7;

if(weekDay==6)

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

else

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

if(d==monthDay(month,year))

printf("\n");

d ;

days ;

}

month ;

printf("\n");

}

system("pause");

return 0;

}

int monthDay(int month, int year)

{

switch(month)

{

case 1:case 3:case 5:case 7:case 8:case 10:case 12:

return 31;

break;

case 4:case 6:case 9:case 11:

return 30;

break;

case 2:

if((IsLeapYear(year))==1)

return 29;

else

return 28;

break;

}

}

int IsLeapYear(int year)

{

if((year%4==0)&&(year0!=0))

return 1;

if(year@0==0)

return 1;

return 0;

}

-End-

,