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]);
}
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]);
}