正文

万年历2006-12-30 13:29:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/flyprogram/22079.html

分享到:

#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");   
}

欢迎大家指教*^_^*

阅读(2067) | 评论(2)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

loading...
您需要登录后才能评论,请 登录 或者 注册