2 条题解

  • -1
    @ 2019-03-31 13:35:24
    #include <iostream>
    using namespace std;
    class DateTime
    {
        int year, month, day, hour, minute, second;
    public:
        void init(int y, int mon, int d, int h, int min, int s)
        {
    
            year = y;
            month = mon;
            day = d;
            hour = h;
            minute = min;
            second = s;
        }
        int isLeapYear()
        {
            if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0))
                return 1;
            else
                return 0;
        }
        int isLeapYear(int i)
        {
            if (i % 400 == 0 || (i % 4 == 0 && i % 100 != 0))
                return 1;
            else
                return 0;
        }
        int daytoBegin()
        {
            int Month[13] = { 0,31,28 + isLeapYear(),31,30,31,30,31,31,30,31,30,31 };
            if (month == 1)
                return day;
            int ans = day;
            while (month > 1)
            {
                ans += Month[month - 1];
                month--;
            }
            return ans;
        }
        int secondtoBegin()
        {
            return 60 * 60 * 24 * daytoBegin() - (60 - second) - 60 * (59 - minute) - 60 * 60 * (23 - hour);
        }
        int GapYearSecond(int y)
        {
            if (y - year >= 1)
            {
                int ans = 365 * (y - year - 1);
                for (int i = year + 1; i < y; i++)
                {
                    if (isLeapYear(i))
                        ans++;
                }
                return ans * 60 * 60 * 24;
            }
            else
            {
                return -(365 + isLeapYear(year)) * 60 * 60 * 24;
            }
        }
    };
    int isLeapYear(int i)
    {
        if (i % 400 == 0 || (i % 4 == 0 && i % 100 != 0))
            return 1;
        else
            return 0;
    }
    int main()
    {
        int y1, mon1, d1, h1, min1, s1;
        cin >> y1 >> mon1 >> d1 >> h1 >> min1 >> s1;
        int y2, mon2, d2, h2, min2, s2;
        cin >> y2 >> mon2 >> d2 >> h2 >> min2 >> s2;
        DateTime t1, t2;
        t1.init(y1, mon1, d1, h1, min1, s1);
        t2.init(y2, mon2, d2, h2, min2, s2);
        cout << 60 * 60 * 24 * (365 + isLeapYear(y1)) - t1.secondtoBegin() + t1.GapYearSecond(y2) + t2.secondtoBegin();
        return 0;
    }
    
  • -4

    #include <iostream>
    using namespace std;
    class DateTime
    {
    int year, month, day, hour, minute, second;
    public:
    void init(int y, int mon, int d, int h, int min, int s)
    {

    year = y;
    month = mon;
    day = d;
    hour = h;
    minute = min;
    second = s;
    }
    int isLeapYear()
    {
    if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0))
    return 1;
    else
    return 0;
    }
    int isLeapYear(int i)
    {
    if (i % 400 == 0 || (i % 4 == 0 && i % 100 != 0))
    return 1;
    else
    return 0;
    }
    int daytoBegin()
    {
    int Month[13] = { 0,31,28 + isLeapYear(),31,30,31,30,31,31,30,31,30,31 };
    if (month == 1)
    return day;
    int ans = day;
    while (month > 1)
    {
    ans += Month[month - 1];
    month--;
    }
    return ans;
    }
    int secondtoBegin()
    {
    return 60 * 60 * 24 * daytoBegin() - (60 - second) - 60 * (59 - minute) - 60 * 60 * (23 - hour);
    }
    int GapYearSecond(int y)
    {
    if (y - year >= 1)
    {
    int ans = 365 * (y - year - 1);
    for (int i = year + 1; i < y; i++)
    {
    if (isLeapYear(i))
    ans++;
    }
    return ans * 60 * 60 * 24;
    }
    else
    {
    return -(365 + isLeapYear(year)) * 60 * 60 * 24;
    }
    }
    };
    int isLeapYear(int i)
    {
    if (i % 400 == 0 || (i % 4 == 0 && i % 100 != 0))
    return 1;
    else
    return 0;
    }
    int main()
    {
    int y1, mon1, d1, h1, min1, s1;
    cin >> y1 >> mon1 >> d1 >> h1 >> min1 >> s1;
    int y2, mon2, d2, h2, min2, s2;
    cin >> y2 >> mon2 >> d2 >> h2 >> min2 >> s2;
    DateTime t1, t2;
    t1.init(y1, mon1, d1, h1, min1, s1);
    t2.init(y2, mon2, d2, h2, min2, s2);
    cout << 60 * 60 * 24 * (365 + isLeapYear(y1)) - t1.secondtoBegin() + t1.GapYearSecond(y2) + t2.secondtoBegin();
    return 0;
    }
    Copy

  • 1

信息

ID
1008
难度
3
分类
(无)
标签
递交数
264
已通过
128
通过率
48%
被复制
9
上传者