📄 -=-
字号:
#include<stdio.h>
#include<stdlib.h>
int runnian(int year)
{
if(year%4==0&&year%100!=0||year%400==0)
return 1;
else
return 0;
}
int day1(int year,int month)
{
int a[12]={31,28,31,30,31,30,31,31,30,31,30,31};
if (runnian(year))
a[1]=29;
return a[month-1];
}
int day2(int year,int month,int day)
{
int i,sum=0;
for(i=1;i<month;i++)
sum+=day1(year,i);
sum+=day;
return sum;
}
int week1(int year,int month,int day)
{
int number;
number=(year-1)+(year-1)/4-(year-1)/100+(year-1)/400+day2(year,month,day);
number%=7;
return number;
}
char *week2(int number)
{
switch(number)
{
case 0: return "星期日";
case 1: return "星期一";
case 2: return "星期二";
case 3: return "星期三";
case 4: return "星期四";
case 5: return "星期五";
case 6: return "星期六";
default: return "错误!请您重新输入。";
}
}
void x1(int year,int month,int day)
{
int number;
number=week1(year,month,day);
if(runnian(year))
printf("闰年");
else
printf("平年");
printf(" %d年 %d月 %d日%10s\n\n",year,month,day,week2(number));
}
void x2(int year,int month)
{
int max,number,i,j=1;
max=day1(year,month);
number=week1(year,month,1);
printf(" ");
printf("%2s %2s %2s %2s %2s %2s %2s\n","星期日","星期一","星期二","星期三","星期四","星期五","星期六");
for(i=0;i<number;i++)
printf(" ");
while(j<=max)
{
printf("%8d",j);
if(i%7==6)
printf("\n\n");
i++;
j++;
}
printf("\n\n");
}
int x3(int year,int month,int day)
{
if(year<0||month<1||month>12||day<1||day>day1(year,month))
return 0;
else
return 1;
}
void nianli(int year)
{
void yueli(int year,int month);
int i;
printf("\n");
for(i=1;i<=12;i++)
yueli(year,i);
}
void yueli(int year,int month)
{
if(runnian(year))
printf("闰年");
else
printf("平年");
printf(" %d年 %d月\n\n",year,month);
x2(year,month);
}
void rili(int year,int month,int day)
{
printf("\n");
x1(year,month,day);
}
void main()
{
int year,month,day,a,b,c=0;
printf("\n\n\n\n");
printf(" ** **\n");
printf(" ***************\n");
printf(" ****** ******\n");
printf(" ******** ********\n");
printf(" ****** ******\n");
printf(" **********************************************************\n\n");
printf(" ************ * * ************ \n");
printf(" *********** 欢迎进入万年历查询系统 ***********\n");
printf(" ************ * * ************ \n\n");
printf(" **********************************************************\n");
printf(" **** **** **** ****\n");
printf(" *** *** *** ***\n");
printf(" * * * *\n");
printf(" * *\n\n\n");
while(1)
{
if(c==1)
{
printf(" ---------谢谢您的使用,请选择继续服务---------\n");
}
c=1;
printf(" 1 年历 2 月历 3 日历 4 退出\n");
printf(" 请输入您的选择<1~4>,按回车键确定: ");
scanf("%d",&b);
switch(b)
{
case 1:
printf("\n\t\t 请输入您要查的年份: ");
scanf("%d",&year);
a=x3(year,1,1);
if(a==0)
{
printf("\n\t\t\t\t错误!请您重新输入。\n\n\n\a\a");
break;
}
nianli(year);
break;
case 2:
printf("\n\t\t 请输入您要查的年和月,年月之间用空格隔开: ");
scanf("%d%d",&year,&month);
a=x3(year,month,1);
if(a==0)
{
printf("\n\t\t\t\t错误!请您重新输入。\n\n\n\a\a");
break;
}
yueli(year,month);
break;
case 3:
printf("\n\t\t请输入您要查的年月日,年月日之间用空格隔开: ");
scanf("%d%d%d",&year,&month,&day);
a=x3(year,month,day);
if(a==0)
{
printf("\n\t\t\t\t错误!请您重新输入。\n\n\n\a\a");
break;
}
rili(year,month,day);
break;
case 4:
printf("\n\n\t\t\t\t 谢谢您的使用\n");
printf("\n\n\t\t\t\t 作者:林悦荣\n\n\t\t\t\t 学号:11070627\n\n\n");
printf("\t\t\t ");
exit(0);
default:
printf("\n\t\t\t\t错误!请您重新输入。\a\a\a\n\n");
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -