正文

万年历2005-09-18 01:27:00

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

分享到:

#include <stdio.h>
main()
{
void print_head(int x,int y);       /*打印头文件*/
void print_month(int x,int y);      /*打印月历*/
int days_of_month(int x,int y);     /*计算指定年月的天数*/
int leap(int x,int y);              /*计算指定年月1号是星期几*/
int i,days,year,month,firstday;
char choose;

    do
       {printf ("\n\nplease input the year(0000~9999):\n\n");
        scanf ("%d",&year);
   if (year<0||year>9999) printf ("WANNING:ERROR,please input again!");}
    while (year<0||year>9999);
    printf ("\n\n");
    do
       {printf ("please input the month(0~12)\n\n\n");
        scanf ("%d",&month);
   if (month<=0||month>12) printf ("WANNING:ERROR,please input again!");}
    while (month<=0||month>12);
    printf ("\n\n");

    days=days_of_month(year,month);       /*调用函数*/
    firstday=leap(year,month);
    print_head(year,month);
    print_month(firstday,days);

    choose=getchar();
    printf ("\n\n\n");

    printf("would you like to continue(y/n):\n\n"); 
    scanf("%c",&choose);
    if (choose=='y'||choose=='Y') main();
}


days_of_month(int x,int y)
{
int z;
switch (y)
{case 1:
  case 3:
  case 5:
  case 7:
  case 8:
  case 10:
  case 12: z=31;break;
  case 4:
  case 6:
  case 9:
  case 11: z=30;break;
  case 2:
   {if ((x%4==0&&x%100!=0)||(x%400==0)) z=29;
     else z=28;break;
   }
   }
return z;
}


leap(int x,int y)
{
int z,i,moday;
z=(x+(x-1)/4-(x-1)/100+(x-1)/400)%7;
for (i=1;i<y;i++)
  {moday=days_of_month(x,i);       /*钳套调用函数*/
   z=(z+moday)%7;
  }
return z;
}


void print_head(int x,int y)
{
printf ("\n\n********************************************************************************\n\n");
printf ("\t\t\t\t%d       %d\n\n",x,y);
printf ("\t\t\t SUN MON TUE WED THU FRI SAT\n");
printf ("\t\t\t");
}


void print_month(int x,int y)
{
int i;
char space[7]={' '};
for (i=1;i<=x;i++)
    printf ("%4c",space[i]);
for (i=1;i<=y;i++)
    {if ((i+x)%7==1) printf ("\n\t\t\t%4d",i);
      else printf ("%4d",i);}
printf ("\n\n********************************************************************************\n\n");
}
 

阅读(5545) | 评论(8)


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

评论

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