确定天数 SDUT 2520

来源:互联网 发布:优化相机 编辑:程序博客网 时间:2024/06/05 06:31

题目描述

定义一年的第一天为一月一日,对于给定的一个日期,你的任务是写一个程序来输出它是当年的第几天。

输入

 

输入包含多组测试数据,每组数据只有一行,由三个用“-”隔开的整数ymd(0 < m < 13, 0 < d < 32)组成,ymd分别代表你要计算的日期的年、月、日。数据保证合法,且均不含前导0

输出

 

对于每组测试数据,输出只有一行,为一个整数代表对应的天数。

示例输入

2012-1-12012-3-1

示例输出

161


闰年的条件是能被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;}


0 0
原创粉丝点击