C语言编写的万年历代码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
该代码在VC++6.0编译器下运行,只要按照编译器给出的说明操作,就能将万年历显示在调试窗口中了……………………………………由于制作时间匆忙,很多注释都来不及写了,对于出学者可以慢慢看,代码很简单的,都放在了主函数里,如果有兴趣的话,可以把这些代码放在几个文件里,这样会好看点,加油了!
#include
#include
void main()
{
int m,i,j,n=0,y=2010,wo,w,a;
printf("input the form of: year-month:\t");
scanf("%d-%d",&y,&m); //输入格式的决定
if(y%4==0&&y%100!=0||y%400==0)
a=29;
else a=28; //闰年的判断及2月日数的确定
if(m<1||m>12){
printf("month is not exit,please input later!\n");
exit(0);
}
wo=(y+(y-1)/4-(y-1)/100+(y-1)/400)%7; //1月1日的算法wo表示
for(i=0;i<55;i++)
printf("*"); //*的输入
printf("\n");
for(j=1;j<=7;j++)
printf("星期%d\t",j); //星期的输入
printf("\n"); //表前的建造
switch(m){
case 1:for(i=1;i printf("\t"); n++; } for(j=1;j<=31;j++){ if(n%7==0) printf("\n"); printf("%d\t",j); n++; } break; // 1 month case 2:w=(wo+31)%7; for(i=1;i printf("\t"); n++; } for(j=1;j<=a;j++){ if(n%7==0) printf("\n"); printf("%d\t",j); n++; } break; // 2 month case 3:w=(wo+31+a)%7; for(i=1;i printf("\t"); n++; } for(j=1;j<=31;j++){ if(n%7==0) printf("\n"); printf("%d\t",j); n++; } break; // 3 month case 4:w=(wo+31+a+31)%7; for(i=1;i printf("\t"); n++; } for(j=1;j<=30;j++){ if(n%7==0) printf("\n"); printf("%d\t",j); n++; } break; // 4 month case 5:w=(wo+31+a+31+30)%7; for(i=1;i printf("\t"); n++; } for(j=1;j<=31;j++){ if(n%7==0) printf("\n"); printf("%d\t",j); n++; } break; // 5 month case 6:w=(wo+31+a+31+30+31)%7; for(i=1;i printf("\t"); n++; } for(j=1;j<=30;j++){ if(n%7==0) printf("\n"); printf("%d\t",j); n++; } break; // 6 month case 7:w=(wo+31+a+31+30+31+30)%7; for(i=1;i printf("\t"); n++; } for(j=1;j<=31;j++){ if(n%7==0) printf("\n"); printf("%d\t",j); n++; } break; // 7 month case 8:w=(wo+31+a+31+30+31+30+31)%7; for(i=1;i printf("\t"); n++; } for(j=1;j<=31;j++){ printf("\n"); printf("%d\t",j); n++; } break; // 8 month case 9:w=(wo+31+a+31+30+31+30+31+31)%7; for(i=1;i printf("\t"); n++; } for(j=1;j<=30;j++){ if(n%7==0) printf("\n"); printf("%d\t",j); n++; } break; // 9 month case 10:w=(wo+31+a+31+30+31+30+31+31+30)%7; for(i=1;i printf("\t"); n++; } for(j=1;j<=31;j++){ if(n%7==0) printf("\n"); printf("%d\t",j); n++; } break; // 10 month case 11:w=(wo+31+a+31+30+31+30+31+31+30+31)%7; for(i=1;i printf("\t"); n++; } for(j=1;j<=30;j++){ if(n%7==0) printf("\n"); printf("%d\t",j); n++; } break; // 11 month case 12:w=(wo+31+a+31+30+31+30+31+31+30+31+30)%7; for(i=1;i