UIT2024_Calendar/stu2024/软件工程2403张灿冉(1).cpp
2024-12-07 16:23:34 +08:00

107 lines
2.4 KiB
C++

#include<stdio.h>
int year1(int y)
{
if((y%4==0)&&(y%100!=0)||y%400==0)
return 366;
else
return 365;
}
int main(void){
int command;
printf("|-----------欢迎使用------------|\n");
printf("|1.查询对应的星期 |\n");
printf("|2.判断是否为闰年 |\n");
printf("|3.查询对应的日历 |\n");
printf("|4.退出 |\n");
printf("|-------------------------------|\n");
do{
printf("请输入您选择的功能:");
scanf("%d",&command);
switch(command)
{
case 1:
int year,month,day,week;
printf("请输入年月日(中间用空格分隔开):");
scanf("%d%d%d",&year,&month,&day);
if(month==1||month==2){
month+=12;
year--;}
week=(day+2*month+3*(month+1)/5+year+year/4-year/100+year/400)%7;
switch(week){
case 0:
printf("星期一\n");
break;
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;
}
break;
case 2:
int x;
printf("请输入年份");
scanf("%d",&x);
if(x%4==0&&x%100!=0||x%400==0)
printf("闰年\n");
else
printf("不是闰年\n");
break;
case 3:
{
int y,i,j,sum=0,z;
int begin,week;
int days[12]={31,28,31,30,31,30,31,31,30,31,30,31};
printf("请输入年份:");
scanf("%d",&y);
printf("1.单列输出 2.双列输出\n");
printf("请输入:",z);
scanf("%d",&z) ;
if(z==1)
for(i=1;i<y;i++)
sum+=year1(i);
week=(sum+1)%7;
if(year1(y)==366)
days[1]=29;
printf("\n%d年日历如下:\n\n",y);
for(i=0;i<12;i++)
{
printf(" %d月 \n",i+1);
printf("周日 周一 周二 周三 周四 周五 周六\n");
printf("==================================\n");
begin=1;
for(j=0;j<week;j++)
printf("");
while(begin<=days[i])
{
printf("%5d",begin);
begin++;
week=(week+1)%7;
if(week%7==0)
printf("\n");
}
printf("\n\n");}
break;}
case 4:
printf("感谢您的使用,再见");
break;
default:
printf("无此功能,请再次输入\n");}
}
while(command!=4);
return 0;
}