题目描述
定义一年的第一天为一月一日,对于给定的一个日期,你的任务是写一个程序来输出它是当年的第几天。
输入
输入包含多组测试数据,每组数据只有一行,由三个用“-”隔开的整数 y、m、d(0 < m < 13, 0 < d < 32) 组成,y、m、d 分别代表你要计算的日期的年、月、日。数据保证合法,且均不含前导0。
输出
对于每组测试数据,输出只有一行,为一个整数代表对应的天数。
示例输入
2012-1-1 2012-3-1
示例输出
1 61
闰年的条件是能被4整除但是不能被100整除或者能被400整除
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
using namespace std;
int main()
{
int a,b,c,sum;
while(~scanf("%d-%d-%d",&a,&b,&c))
{
sum=0;
if((a%4==0&&a%100!=0)||(a%400==0))
{
for(int i=1; i<b; i++)
{
if(i==1||i==3||i==5||i==7||i==8||i==10||i==12)
{
sum+=31;
}
if(i==2)
{
sum+=29;
}
if(i==4||i==6||i==9||i==11)
{
sum+=30;
}
}
sum+=c;
}
else
{
for(int i=1; i<b; i++)
{
if(i==1||i==3||i==5||i==7||i==8||i==10||i==12)
{
sum+=31;
}
if(i==2)
{
sum+=28;
}
if(i==4||i==6||i==9||i==11)
{
sum+=30;
}
}
sum+=c;
}
printf("%d\n",sum);
}
return 0;
}