# include <stdio.h>
int leapyear(int year)
{
if((year%4 == 0 &&year%100 != 0)||(year%400 == 0))
return(1);
else
return(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);
}
万年历系统
最新推荐文章于 2023-01-15 11:34:45 发布