#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#define TURE 1
#define FALSE 0
int week(int *p1,int *p2,int *p3);
int data(int *p1,int *p2);
int Aurthorware(int year);
/*Aurthorware函数,用以查询该年是否为闰年*/
int Aurthorware(int year)
{
int result;
if((year%4==0&&year%100!=0)||(year%4==0&&year%400==0))
result = TURE;
else
result = FALSE;
return result;
}
int data(int *p1,int *p2)
{
int month[13] = {31,28,31,30,31,30,31,31,30,31,30,31};
int i=1,k,j;
if(Aurthorware(*p1))
month[1]+=1;
printf(" Sun Mon Tur Wed Thu Fri Sat \n");
k = week(p1,p2,&i);
for(j=0;j<k;j++)
printf(" ");
while(i<=month[*p2-1])
{
if((i+k)%7==0)
printf(" %2d \n",i);
else
printf(" %2d ",i);
++i;
}
getch();
}
int week(int *p1,int *p2,int *p3)
{
int month[13] = {0,31,59,90,120,151,181,212,243,273,304,334,365};
int i,sum,k=0;
if(*p1>=1904)
{
if(*p1==1904&&*p2<=2)
k = 0;
else
k = (*p1-1900)/4;
}
sum = (*p1-1900)*365+month[*p2-1]+*p3+k;
i = sum%7;
return i;
}
/*catalog提示用户可以选择本程序的一些功能*/
int catalog()
{
char c;
int year,month,day,k;
B:
printf("A、判断某年是否为闰年.\n");
printf("B、显示某年某月的日历.\n");
printf("C、查询某年某月某日为星期几.\n");
printf("D、结束本应用程序.\n");
printf("请按相关格式输入您要查询的信息\n");
c = getchar();
system("CLS");
if(c=='A'||c=='a')
{
printf("请输入您要查询的年:\n");
scanf("%d",&year);
if(Aurthorware(year))
{
printf("%d是闰年.\n",year);
getch();
return FALSE;
}
else if(!Aurthorware(year))
{
printf("%d不是闰年.\n",year);
getch();
return FALSE;
}
}
else if(c=='B'||c=='b')
{
printf("请输入:(年-月)(1900年以上)\n");
scanf("%d-%d",&year,&month);
if(year<1900)
printf("你是猪呀,程序返回\n");
else
data(&year,&month);
return FALSE;
}
else if(c=='C'||c=='c')
{
printf("请输入:(年-月-日)(1900年以上年份)\n");
scanf("%d-%d-%d",&year,&month,&day);
if(year<1900)
printf("你是猪呀,返回主菜单\n");
else
{
k = week(&year,&month,&day);
switch(k)
{
case 0: printf("%d年%d月%d日是星期日\n",year,month,day); break;
case 1: printf("%d年%d月%d日是星期一\n",year,month,day); break;
case 2: printf("%d年%d月%d日是星期二\n",year,month,day); break;
case 3: printf("%d年%d月%d日是星期三\n",year,month,day); break;
case 4: printf("%d年%d月%d日是星期四\n",year,month,day); break;
case 5: printf("%d年%d月%d日是星期五\n",year,month,day); break;
case 6: printf("%d年%d月%d日是星期六\n",year,month,day); break;
}
}
getch();
return FALSE;
}
else if(c=='D'||c=='d') return TURE;
else
{
printf("对不起,没有该选项,请重选!\n");
getch();
system("CLS");
goto B;
}
}
int main()
{
int i;
A:
system("CLS");
i = catalog();
if(!i)
goto A;
else if(i)
printf("欢迎使用该应用程序,您的电脑将中XX号病毒^_^\n");
system("pause");
}
欢迎大家指教*^_^*

评论