[ACM]18岁生日

来源:互联网 发布:淘宝网网购流程图 编辑:程序博客网 时间:2024/04/30 05:49

Problem Description

Gardon的18岁生日就要到了,他当然很开心,可是他突然想到一个问题,是不是每个人从出生开始,到达18岁生日时所经过的天数都是一样的呢?似乎并不全都是这样,所以他想请你帮忙计算一下他和他的几个朋友从出生到达18岁生日所经过的总天数,让他好来比较一下。

Input

一个数T,后面T行每行有一个日期,格式是YYYY-MM-DD。如我的生日是1988-03-07。

Output

Sample Input

11988-03-07

Sample Output

6574

Author

Gardon

Source

Gardon-DYGG Contest 2


解题思路:如下代码


代码:

#include <iostream>using namespace std;bool rui(int year)//判断瑞年{    if(year%4==0&&year%100!=0||year%400==0)        return 1;    else        return 0;}int main(){    int T;    char a[11];//用来保存输入的年月日以及----    cin>>T;    int i,j;    int year,month,day,days;    for(i=1;i<=T;i++)    {        days=0;//需要输出的天数        for(j=0;j<10;j++)            cin>>a[j];        for(j=0;j<=3;j++)            if(a[j]!='0')            break;//判断0出现的位置,从而进行年份的计算        if(j==4)//前四位都为0,年份为0            year=0;        else if(j==3)            year=int(a[3]-'0');//前三位为0,第四位不为0,年份为1位数        else if(j==2)            year=int(a[2]-'0')*10+int(a[3]-'0');//前两位为0,第三位部位0,年份为2位数        else if(j==1)            year=int(a[1]-'0')*100+int(a[2]-'0')*10+int(a[3]-'0');//第一位为0,第二位不为0,年份为3位数        else            year=int(a[0]-'0')*1000+int(a[1]-'0')*100+int(a[2]-'0')*10+int(a[3]-'0');//第一位就不是‘0’,年份为4位数        //判断月份        if(a[5]=='0')            month=int(a[6]-'0');//月份的一个数为0,月份为一位数        else            month=int(a[5]-'0')*10+int(a[6]-'0');//月份为两位数        //判断日数        if(a[8]=='0')            day=int(a[9]-'0');        else            day=int(a[8]-'0')*10+int(a[9]-'0');        if(rui(year)&&month==2&&day==29&&!rui(year+18))            cout<<-1<<endl;//当出生为瑞年的2月29以及18年后的那一年不是瑞年(没有2月29日),即没有18岁生日        else        {                int temp;                temp=year;                for(;year<=temp+17;year++)            {                if((month<2)||(month==2&&day<=28))//日数小于等于二月28日                  {                        if(rui(year))                    {                            days+=366;                    }                        else                            days+=365;                  }                else                {                    if(rui(year+1))                        days+=366;                    else                        days+=365;                }            }            cout<<days<<endl;        }    }    return 0;}


运行截图:



原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 小孩子老说头疼怎么办 孩子总是否定自己怎么办 孩子总是否定别人怎么办 老师屏蔽家长该怎么办 初二学生学疲劳怎么办 孩子不愿补英语怎么办 培训班孩子不学怎么办 小孩不想去学校怎么办 讨厌父母的性格怎么办 老师揪孩子耳朵怎么办 老师整天骂孩子怎么办 教师被学生骂怎么办 幼儿园学生骂老师怎么办 学生骂老师外号怎么办 小孩上课很多嘴怎么办 学生老玩手机怎么办 和校长有了矛盾怎么办 家长打了我怎么办 小朋友不想去幼儿园怎么办 小朋友不想上幼儿园怎么办 高中老师打学生家长怎么办 老师偏心学生该怎么办? 老师能打孩子怎么办 有的幼儿打老师怎么办? 孩子特别怕老师怎么办 孩子跟老师认生怎么办 和搭班老师不合怎么办 学生厌学了老师怎么办 孩子很怕我怎么办 斗米报名之后怎么办 孩子鼻子长疮怎么办 六年级孩子不爱学习怎么办 孩子不要爱学习怎么办? 孩子说不愿意读书怎么办 孩子三天没吃饭怎么办 孩子三天不吃饭怎么办 初中学生不爱学习怎么办 孩子写字头歪怎么办 学习习惯差该怎么办 孩子沉迷网络游戏家长怎么办 二年级贪玩厌学怎么办