|
|
|
@ -0,0 +1,180 @@
|
|
|
|
|
#include<stdio.h>
|
|
|
|
|
#include<stdlib.h>
|
|
|
|
|
int Year(int A)
|
|
|
|
|
{
|
|
|
|
|
int i,s=0,day;
|
|
|
|
|
for (i=1;i<=A-1;i++)
|
|
|
|
|
{
|
|
|
|
|
if (i%4==0 && i%100!=0 || i%400==0)
|
|
|
|
|
day=366;
|
|
|
|
|
else
|
|
|
|
|
day=365;
|
|
|
|
|
s=s+day;}
|
|
|
|
|
return s;
|
|
|
|
|
}
|
|
|
|
|
int Month(int B,int C)
|
|
|
|
|
{
|
|
|
|
|
int tian;
|
|
|
|
|
switch(C)
|
|
|
|
|
{
|
|
|
|
|
case 1: tian=31;break;
|
|
|
|
|
case 2:
|
|
|
|
|
if (B%4==0 && B%100!=0 || B%400==0)
|
|
|
|
|
tian=29;
|
|
|
|
|
else
|
|
|
|
|
tian=28;break;
|
|
|
|
|
case 3: tian=31;break;
|
|
|
|
|
case 4: tian=30;break;
|
|
|
|
|
case 5: tian=31;break;
|
|
|
|
|
case 6: tian=30;break;
|
|
|
|
|
case 7: tian=31;break;
|
|
|
|
|
case 8: tian=31;break;
|
|
|
|
|
case 9: tian=30;break;
|
|
|
|
|
case 10: tian=31;break;
|
|
|
|
|
case 11: tian=30;break;
|
|
|
|
|
case 12: tian=31;break;
|
|
|
|
|
}
|
|
|
|
|
return tian;
|
|
|
|
|
}
|
|
|
|
|
void Day(int E)
|
|
|
|
|
{
|
|
|
|
|
switch(E)
|
|
|
|
|
{
|
|
|
|
|
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 7: printf("该日是星期日\n");break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
void Holiday(int F,int G)
|
|
|
|
|
{
|
|
|
|
|
if (F==1&&G==1||F==5&&G==1||F==10&&G==1||F==3&&G==8||F==3&&G==12||F==5&&G==4||F==6&&G==1||F==7&&G==1||F==8&&G==1||F==9&&G==10)
|
|
|
|
|
printf ("当天为公历节日\n");
|
|
|
|
|
else
|
|
|
|
|
printf ("当天不是公历节日");
|
|
|
|
|
}
|
|
|
|
|
void main()
|
|
|
|
|
{
|
|
|
|
|
system("color 0E");
|
|
|
|
|
int year,d,g,j,Z,di,did,m,n,D,x,y,z,h,k,l,jian,Z1,hui;
|
|
|
|
|
printf("**********************************欢迎您的使用**********************************\n");
|
|
|
|
|
printf("本程序有如下功能:\n\n");
|
|
|
|
|
printf("1.输入一个年份,输出是在屏幕上显示该年的日历。假定输入年份在1940-2040之间。\n\n");
|
|
|
|
|
printf("2.输入年月,输出该月的日历。\n\n") ;
|
|
|
|
|
printf("3.输入年月日,输出距今天还有多少天,星期几,是否是公历节日。\n");
|
|
|
|
|
printf("\n");
|
|
|
|
|
hui=1;
|
|
|
|
|
while(hui==1)
|
|
|
|
|
{
|
|
|
|
|
do
|
|
|
|
|
{
|
|
|
|
|
printf("请输入您要使用的功能序号:");
|
|
|
|
|
scanf("%d",&g);
|
|
|
|
|
printf("\n");
|
|
|
|
|
switch(g)
|
|
|
|
|
{
|
|
|
|
|
case 1:
|
|
|
|
|
{
|
|
|
|
|
printf ("输入你所查寻日历的年份:");
|
|
|
|
|
scanf ("%d",&year);
|
|
|
|
|
Z=Year(year);
|
|
|
|
|
for (j=1;j<=12;j++)
|
|
|
|
|
{
|
|
|
|
|
d=Z%7; /*d表示今年第一天是星期几,余数为0则是星期日*/
|
|
|
|
|
printf("==================================\n");
|
|
|
|
|
printf (" %d月份\n",j);
|
|
|
|
|
printf ("周日 周一 周二 周三 周四 周五 周六\n");
|
|
|
|
|
if (d<6)
|
|
|
|
|
for (di=1;di<=d+1;di++)
|
|
|
|
|
printf(" ");
|
|
|
|
|
for (did=1;did<=Month(year,j);did++)
|
|
|
|
|
{
|
|
|
|
|
printf ("%d",did);
|
|
|
|
|
if (did<10)
|
|
|
|
|
printf (" ");
|
|
|
|
|
else
|
|
|
|
|
printf (" ");
|
|
|
|
|
if (did==6-d || (did-6+d)%7==0 || did==Month(year,j))
|
|
|
|
|
printf ("\n");
|
|
|
|
|
}
|
|
|
|
|
Z=Z+Month(year,j);
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
case 2:
|
|
|
|
|
{
|
|
|
|
|
printf ("输入所查日历的年月");
|
|
|
|
|
scanf ("%d%d",&m,&n);
|
|
|
|
|
Z=Year(m);
|
|
|
|
|
for (j=1;j<=n-1;j++)
|
|
|
|
|
{
|
|
|
|
|
D=Month(m,j);
|
|
|
|
|
Z=Z+D;
|
|
|
|
|
}
|
|
|
|
|
d=Z%7;
|
|
|
|
|
printf("==================================\n\n");
|
|
|
|
|
printf(" %d年\n\n",m);
|
|
|
|
|
printf (" %d月份\n",j);
|
|
|
|
|
printf ("周日 周一 周二 周三 周四 周五 周六\n");
|
|
|
|
|
if (d<6)
|
|
|
|
|
for (di=1;di<=d+1;di++)
|
|
|
|
|
printf(" ");
|
|
|
|
|
for (did=1;did<=Month(year,j);did++)
|
|
|
|
|
{
|
|
|
|
|
printf ("%d",did);
|
|
|
|
|
if (did<10)
|
|
|
|
|
printf (" ");
|
|
|
|
|
else
|
|
|
|
|
printf (" ");
|
|
|
|
|
if (did==6-d || (did-6+d)%7==0 || did==Month(year,j))
|
|
|
|
|
printf ("\n");
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
case 3:
|
|
|
|
|
{
|
|
|
|
|
printf ("输入查询年月日");
|
|
|
|
|
scanf ("%d%d%d",&x,&y,&z);
|
|
|
|
|
printf("\n") ;
|
|
|
|
|
Z=Year(x);
|
|
|
|
|
for (j=1;j<=y-1;j++)
|
|
|
|
|
{
|
|
|
|
|
D=Month(x,j);
|
|
|
|
|
Z=Z+D;
|
|
|
|
|
}
|
|
|
|
|
Z=Z+z;
|
|
|
|
|
printf ("输入当前年月日");
|
|
|
|
|
scanf ("%d%d%d",&h,&k,&l);
|
|
|
|
|
printf("\n");
|
|
|
|
|
Z1=Year(h);
|
|
|
|
|
for (j=1;j<=k-1;j++)
|
|
|
|
|
{
|
|
|
|
|
D=Month(k,j);
|
|
|
|
|
Z1=Z1+D;
|
|
|
|
|
}
|
|
|
|
|
Z1=Z1+l;
|
|
|
|
|
jian=Z-Z1-1;
|
|
|
|
|
printf ("输入日期距今天还有%d天\n",jian);
|
|
|
|
|
d=Z%7;
|
|
|
|
|
Day(d);
|
|
|
|
|
printf("\n");
|
|
|
|
|
Holiday(y,z);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
default:
|
|
|
|
|
{
|
|
|
|
|
printf("亲,没有此功能噢!\n\n");
|
|
|
|
|
printf("请您重新输入所选择的功能!\n\n") ;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}while(g!=1&&g!=2&&g!=3);
|
|
|
|
|
printf("\n");
|
|
|
|
|
printf("继续使用,请按1;\n\n退出程序,请按2。\n\n请输入您的选择:");
|
|
|
|
|
scanf("%d",&hui);
|
|
|
|
|
printf("\n");
|
|
|
|
|
}
|
|
|
|
|
}
|