万年历系统

来源:互联网 发布:麦克风淘宝购买 编辑:程序博客网 时间:2024/05/17 02:00
# include <stdio.h>int leapyear(int year){if((year%4 == 0 &&year%100 != 0)||(year%400 == 0))return(1);elsereturn(0);}int week(int y,int m,int d){int sum=0,i,x;int a[12]={31,28,31,30,31,30,31,31,30,31,30,31};for(i=0;i<m-1;i++)sum=sum+a[i];sum=sum+d;if((leapyear(y)==1)&&(m>=2))sum=sum+1;x=(5+(y+1)+(y-1)/4-(y-1)/100+(y-1)/400+sum)%7;return x;}int max(int y,int m){    int a[12]={31,28,31,30,31,30,31,31,30,31,30,31};if(leapyear(y)==1)a[1]=a[1]+1;return a[m-1];}void main(){int choice;int year,month,day;printf("*******************万年历********************\n");printf("         1.查询某年某月某日是星期几\n");printf("         2.是否为闰年\n");printf("         3.查询某月的最大天数\n");    printf("         4.打印某年某月的月历\n");printf("         0.退出\n");printf("*********************************************\n");do{printf("请输入一个指令:");    scanf("%d",&choice);        switch(choice){case 0:printf("退出系统");break;    case 1:{int a;printf("请输入要查询的日期:\n");    scanf("%d,%d,%d",&year,&month,&day);printf("%d年%d月%d日是星期",year,month,day);a=week(year,month,day);switch(a){case 1:printf("一\n");break;                   case 2:printf("二\n");break;                   case 3:printf("三\n");break;                   case 4:printf("四\n");break;                   case 5:printf("五\n");break;                   case 6:printf("六\n");break;                   case 0:printf("天\n");break;}}break;case 2:{printf("请输入要查询的年份:\n");scanf("%d",&year);if(leapyear(year)==1)    printf("%d是闰年\n",year);                else    printf("%d不是闰年\n",year);}break;case 3:{int b;printf("请输入年月:\n");scanf("%d,%d",&year,&month);b=max(year,month);                 printf("%d年%d月的最大天数是:%d\n",year,month,b);}break;case 4:{int c,t=1;int d[100]={0};printf("请输入年份:\n");scanf("%d",&year);printf("请输入月份:\n");scanf("%d",&month);                printf("SUN  MON  TUE  WED  THU  FRI  SAT  :\n");    printf("*******************%d年%d月********************\n",year,month);                c=week(year,month,1);for(int h=0;h<c;h++)printf("     ");for(int i=c;i<=max(year,month)+c-1; i++){d[i]=t;t++;}                for(int j=c;j<=max(year,month)+c-1; j++){printf("%2d   ",d[j]);if((j+1)%7==0)printf("\n");}printf("\n************************************************\n");}}}while(choice!=0);}

原创粉丝点击