您的位置:首页 > 其它

1657: 求日龄

2015-08-07 20:23 274 查看

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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: