1657: 求日龄
时间限制: 1 Sec
内存限制: 128 MB
提交: 5
解决: 3
[ 提交][状态][讨论版]
题目描述
年龄是指一个人出生后以年为长度计算的时间整数值。
同理,日龄指一个人出生后以日为长度计算的时间整数值。
请求出给定日期出生的人,到2013年3月9日的日龄吧。
输入
一个日期,表示这个人的生日
输入日期一定在2013-3-9之前
输出
日龄
样例输入
2013-3-8
样例输出
1
#include<stdio.h>
#include<string.h>
int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int b[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};
int main(){
int y,m,d,sum,dd,ddd,num,i;
while(scanf("%d-%d-%d",&y,&m,&d)!=EOF)
{
sum=dd=ddd=0;
if(y>=2013&&m>=3&&d>=9||y>2013)
break;
else
{
num=0;
if(y==2013)
{
for(i=0;i<m;i++)
dd+=a[i];
dd+=d;
num=68-dd;
printf("%d\n",num);
}
else
{
num=0;
for(i=0;i<m;i++)
{
if(y%4==0&&y%100!=0||y%400==0)
{
sum+=b[i];
num=366-sum;
}
else
{
sum+=a[i];
num=365-sum;
}
}
num-=d;
for(i=2012;i>y;i--)
{
if(i%4==0&&i%100!=0||i%400==0)
ddd+=366;
else
ddd+=365;
}
num+=ddd+68;
printf("%d\n",num);
}
}
}
return 0;
}