美文网首页
T1-9第九题 这一年第几天问题HDU - 2005 amc第一

T1-9第九题 这一年第几天问题HDU - 2005 amc第一

作者: xcpooo | 来源:发表于2018-12-09 23:48 被阅读0次

    Input
    输入数据有多组,每组占一行,数据格式为YYYY/MM/DD组成,具体参见sample input ,另外,可以向你确保所有的输入数据是合法的。
    Output
    对于每组输入数据,输出一行,表示该日期是该年的第几天。

    #include <iostream>
    using namespace std;
    struct date {
        long long year;
        int month;
        int day;
    };
    int countdays(date day1) {
        int i = day1.day;
        int sum = 0;
        switch (day1.month) {
        case 12:
            sum += 30;
        case 11:
            sum += 31;
        case 10:
            sum += 30;
        case 9:
            sum += 31;
        case 8:
            sum += 31;
        case 7:
            sum += 30;
        case 6:
            sum += 31;
        case 5:
            sum += 30;
        case 4:
            sum += 31;
        case 3:
            sum += 28;
        case 2:
            sum += 31;
        case 1:
            sum += i;
            break;
    
        }
        if (day1.year % 400 == 0 || (day1.year % 100 != 0 && day1.year % 4 == 0)) {
            if (day1.month > 2)//如果月份不超过二月份的话,不需要加1的,例如1999.1.2和2000.1.2
    //都是第二天,并没有因为闰年而增加
                return ++sum;
        }
        return sum;
    }
    
    int main()
    {
        date a;
        char blash;//用char 型判断“/”很骚。。。
    
        while (cin >> a.year >> blash >> a.month >> blash >> a.day)  
     {
    
    
            cout << countdays(a) << endl;
        }
    
    
        return 0;
    }
    

    相关文章

      网友评论

          本文标题:T1-9第九题 这一年第几天问题HDU - 2005 amc第一

          本文链接:https://www.haomeiwen.com/subject/prelhqtx.html