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