日历源代码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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; } } 运行结果: