日历源代码

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

日历源代码

#include

int leapyear(int year);

int week_of_newyears_day(int year);

int main()

{

int year = 0;

int month = 0;

int day = 0;

int len_of_month = 0;

int i = 0;

int t = 0;

while(1)

{

printf("请输入某年年份: ");

scanf("%d",&year);

if(year!=0)

{

t = week_of_newyears_day(year);

printf("\n %d年\n\n",year); /* 打印年份*/

for(month=1; month<=12;month=month+1) /* 打印12个月的月

历*/

{

printf(" %d月份\n",month);

printf("星期日星期一星期二星期三星期四星期五星期六\n");

for(i=0;i

{

printf(" ");

}

if(month==4 || month== 6 || month==9 || month==11)

len_of_month = 30;

else if(month==2)

{

if(leapyear(year))

len_of_month = 29;

else

len_of_month = 28;

}

else

len_of_month = 31;

for(day=1;day<=len_of_month;day=day+1)/* 打印当月日期*/

{

printf(" %2d ",day);

t = t+1;

if(t == 7)/* 打满一星期应换行*/

{

t = 0;

printf("\n");

}

}

printf("\n\n");/* 打完一月应换行*/ }

}

else if(year==0)

{

break;

}

}

return 0;

}

int leapyear(int year)

{

int leap = 0;

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

leap = 1;

}

return leap;

}

int week_of_newyears_day(int year)

{

long a,b;

if(year<=2000)

{

a=2000-year;

b=6-(a+a/4-a/100+a/400)%7;

return b;

}

else

{

a=year-2000;

//b=(a+1+(a-1)/4-(a-1)/100+(a-1)/400)%7+6;

b = ((a/4 + 1) * 366 + (a - a/4 - 1) * 365) % 7 + 6; return b%7;

}

}

运行结果:

相关文档
最新文档