第几天?
问题 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;
}
}
}

浙公网安备 33010602011771号