C语言 结构体 日期计算 OJ0
rilu65272014.02.03浏览139次分享举报
Description
定义一个结构体变量(包括年、月、日),编程序,要求输入年月日,计算并输出该日
在本年中第几天。注意本题一定要定义结构体变量,否则本实验成绩无效。
Input
输入三个整数(并且三个整数是合理的,既比如当输入月份的时候应该在1 至12 之间,
不应该超过这个范围)否则输出Input
error!
Output
输出一个整数.既输入的日期是本月的第几天。
Sample
Input
1985 1 20
2006 3 12
Sample
Output
20
71
Hint
1、算法提示:如果输入的是2006 年3 月12 日,计算方法是:计算2006 年1 月1 日
到2006-3-12 是多少天。注意同样判断本年度是否闰年。
(( year%4==0 && year%100!=0 )!!(year%400==0))
------------
#include
int main()
{
struct Date
{
int year;
int month;
int day;
}date;
scanf("%d%d%d",&date.year,&date.month,&date.day);
if(date.month>0 && date.month<13 && date.year>0 && date.day>0)
{
int a[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};
int sum,i;
if(( date.year%4==0 && date.year%100!=0 ) || (date.year%400==0))
{
if(date.month>2)
{
for(i=3,sum=60;i
sum=sum+a[i];
}
else
{
for(i=0,sum=0;i
sum=sum+a[i];
}
}
else
{
if(date.month>2)
{
for(i=3,sum=59;i
sum=sum+a[i];
}
else
{
for(i=0,sum=0;i
sum=sum+a[i];
}
}
printf("%d\n",date.day+sum);
}
else
{
printf("Input error!\n");
}
return 0;
}