当前位置:文档之家› C语言编写的万年历代码

C语言编写的万年历代码

该代码在VC++6.0编译器下运行,只要按照编译器给出的说明操作,就能将万年历显示在调试窗口中了……………………………………由于制作时间匆忙,很多注释都来不及写了,对于出学者可以慢慢看,代码很简单的,都放在了主函数里,如果有兴趣的话,可以把这些代码放在几个文件里,这样会好看点,加油了!
#include<stdio.h>
#include<math.h>
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<wo;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<w;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<w;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<w;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<w;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<w;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<w;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<w;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<w;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<w;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<w;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<w;i++){
n++;
}
for(j=1;j<=31;j++){
if(n%7==0)
printf("\n");
printf("%d\t",j);
n++;
}
break; // 12 month
}
printf("\n");
for(i=0;i<55;i++)
printf("*");
printf("\n"); //表尾的处理}。

相关主题