c语言算日期程序

#include"stdio.h"
void main()
{ int year,month,date,sum,n,a,day,i,l,leap=0;

const char *riqi[7]={"日","一","二","三","四","五","六"};
/*定义一个指针数组来显示日期 */
    printf("请输入xx年xx月xx日(用空格隔开)      您共有10次的机会来输入正确的数据\n");
    for(l=0;l<10;l++)                      /*判断是否是正确的数据*/
    { scanf("%d %d %d",&year,&month,&date);
       if((month>=1&&month<=12)&&(date>0&&date<=31))
    {     if(year%4==0&&(year%100!=0)||year%400==0)
                if(month==2&&date>29)
                { printf("输入错误,请重新输入\n");
                continue;
                }
                else break;
            else if(month==2&&date>28)
                    { printf("输入错误,请重新输入\n");
                     continue;
                    }
                 else break;
      }
       else
           printf("输入错误,请重新输入\n");
           continue;
    }

a=month-1;
switch(a)
{ case 0:day=0;break;
    case 1:day=31;break;
    case 2:day=59;break;
    case 3:day=90;break;
    case 4:day=120;break;
    case 5:day=151;break;
    case 6:day=181;break;
    case 7:day=212;break;
    case 8:day=243;break;
    case 9:day=273;break;
    case 10:day=304;break;
    case 11:day=334;break;
    default:printf("data error");break;
   
}
for(i=1;i<year;i++)

{ if((i%4==0)&& (i%100!=0)||(i%400==0))
     leap++;
}               /*leap是用于记录润年的数目的*/

sum=leap*366+(year-1-leap)*365+day+date;

if((year%4==0)&& (year%100!=0)&&month>2||(year%400==0)&&month>2)
/*判断闰年的条件是要大于2月的时候才算*/

    { printf("这是一个闰年\n");
      sum++;
    }


n=sum%7; /*星期数按每7天循环一次*/
printf("输入正确,今天是星期%s\n",riqi[n]);

}

posted on 2009-08-31 22:59  9号  阅读(361)  评论(0编辑  收藏  举报

导航