该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
printf(" 建军节\n");
if(month==9&&day==10)
printf(" 教师节\n");
if(month==10&&day==1)
printf(" 国庆节\n");
if(month==12&&day==24)
printf(" 平安夜\n");
if(month==12&&day==25)
printf(" 圣诞节\n");
/*计算“距今几天”的模块*/
time_t rawtime; /*获取系统当前日期*/
struct tm *timeinfo;
time (&rawtime);
timeinfo=localtime (&rawtime); int d2=0;
for(j=1;j<=(1900+timeinfo->tm_year);j++)
{ if((j-1)%4 == 0 && (j-1)%100 != 0 || (j-1)%400 == 0)
d2=d2+1; }
e2=365*((1900+timeinfo->tm_year)-1)+d2; a2=(1+timeinfo->tm_mon)-2;
for(b2=0;b2<=a2;b2++)
c2=c2+days[b2];
if((!leapyear(1900+timeinfo->tm_year))&&((1+timeinfo->tm_mon)>2))
c2--;
e2=e2+c2+(timeinfo->tm_mday);/*当前日期距离1940年1月1日的天数*/
int d1=0;
for(j=1;j<=year;j++)
{ if((j-1)%4 == 0 && (j-1)%100 != 0 || (j-1)%400 == 0)
{d1++;}
}
e1=365*(year-1)+d1; a1=month-2;
for(b1=0;b1<=a1;b1++)
c1=c1+days[b1];
if((!leapyear(year))&&(month>2))
c1--;
e1=e1+c1+day; /*输入日期距离1940年1月1日的天数*/
e=e1-e2;
printf(" 距今天还有%d天",e);
}
/*写出系统输入的限制条件*/
int s(int year,int month,int day)
{
if(year<1940||year>2040||month<1||month>12||day<1||day>day1(year,month)) /*当输入出现这些错误值的情况时*/
return 0;
else
return 1;
}
void nianli(int year) /*输出年历*/
{
int max,number,p,j,i;
printf("\n");
for(p=1;p<=12;p++)
{
j=1;
if(leapyear(year))
printf("闰年");
else
printf("平年");
printf(" %d 年 %d 月\n\n",year,p);
max=day1(year,p);
number=week1(year,p,1);
printf(" %2s%2s%2s%2s%2s%2s%2s\n"," 星期日 "," 星期一 "," 星期二 "," 星期三 "," 星期四 "," 星期五 "," 星期六 ");/*按照间隔打印日历*/
for(i=0;i
{
printf(" ");
}
while(j<=max)
{
printf("%8d",j);
if(i%7==6)
{
printf("\n");
}
i++;
j++;
}
printf("\n\n");
}
}
void yueli(int year,int month) /*输出月历*/
{
if(leapyear(year))
printf("闰年");
else printf("平年");
printf(" %d 年 %d 月\n\n",year,month);
x2(year,month);
}
void rili(int year,int month,int day) /*输出日历*/
{
printf("\n");
x3(year,month,day);
}
void main()
{
int year,month,day,a,b;
/*显示系统当前日期*/
loop:
//获取系统时间函数
time_t rawtime; /*调用系统日期,包括年月日*/
struct tm *timeinfo;
time (&rawtime);
timeinfo=localtime (&rawtime); /*万年历封面的制作*/
printf("\n\n\n 现在是:%d年%d月%d日,1900+timeinfo->tm_year,1+timeinfo->tm_mon,timeinfo->tm_mday");
printf(" \n");
printf(" * * * * * * * * * * * * * * * * * * * \n");
printf(" * * \n");
printf(" * 欢迎进入万年历查询系统 * \n");
printf(" * * \n");
printf(" * * * * * * * * * * * * * * * * * * * \n\n\n");
printf(" 1 年历 2 月历 3 日历 4 退出\n");
printf(" \n");
printf(" 请输入您的选择<1~4>,按回车键确定:");
scanf("%d",&b);
switch(b)
{
case 1:
printf("\n请输入您要查的年份,按回车键确定: "); scanf("%d",&year);
a=s(year,1,1);
if(a==0)
{
printf("错误!请您重新输入。\n"); break;
}
nianli(year);
break;
case 2:
printf("\n请输入您要查的年和月,年月之间用空格隔开,按回车键确定: ");
scanf("%d%d",&year,&month); a=s(year,month,1);
if(a==0)
{
printf("错误!请您重新输入。\n");
break;
}
yueli(year,month);
break;
case 3:
printf("\n请输入您要查的年月日,年月日之间用空格隔开,按回车键确定: ");
scanf("%d%d%d",&year,&month,&day);
a=s(year,month,day);
if(a==0)
{
printf("错误!请您重新输入。\n"); break;
}
rili(year,month,day);
break;
case 4:
exit(0);
default:
printf("错误!请您重新输入。\n\n");
}
printf("\n");
printf(" 按回车键继续");
getch();
system("cls");
goto loop; }