第几天?

问题 A: 第几天?

时间限制: 1 Sec  内存限制: 128 MB
提交: 2  解决: 1
[提交][状态][讨论版]

题目描述

给定一个日期,输出这个日期是该年的第几天。

输入

输入数据有多组,每组占一行,数据格式为YYYY.MM.DD组成,具体参见sample input ,另外,可以向你确保所有的输入数据是合法的。

输出

对于每组输入数据,输出一行,表示该日期是该年的第几天。

样例输入

1985.1.20
2006.3.12

样例输出

20
71

提示

#include<iostream>
#include<algorithm>
#include<stdio.h>
#include<string.h>
#include<queue>
using namespace std;
int main()
{             //0  1  2  3  4  5  6  7  8  9  10  11  12
     int a1[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 i,j;
     char a[10];
     while(scanf("%s",a)!=EOF)
     {
         int k=0,j,d[3]={0},temp=0;
         for(i=0;i<=strlen(a);i++)
         {
             if(a[i]=='.'||i==strlen(a))
             {
 
                 for(j=k;j<i;j++)
                   d[temp]=d[temp]*10+a[j]-'0';
                 k=i+1;
                 temp++;
             }
         }
         int sum=0;
         if(d[0]%400==0||(d[0]%4==0&&d[0]%100!=0))
         {
             for(i=1;i<d[1];i++)
                sum+=b[i];
            cout<<sum+d[2]<<endl;
         }
         else
         {
            for(i=1;i<d[1];i++)
                sum+=a1[i];
            cout<<sum+d[2]<<endl;
         }
 
 
 
     }
}



posted @ 2017-03-05 20:39  X_na  阅读(159)  评论(0)    收藏  举报