题解 | 计算日期到天数转换

#include <iostream>
#include <ostream>
using namespace std;

class Date {
  public:
    Date(int year, int month, int day) {
        _year = year;
        _month = month;
        _day = day;
    }
    ~Date() {
        _year = 0;
        _month = 0;
        _day = 0;
    }

    //每个月份有几天
    int GetMonthDay(int year, int month) {
        int monthArray[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
        if (month == 2 && (((year % 4 == 0) && year % 100 != 0) || (year % 400 == 0))) {
            return 29;
        }
        return monthArray[month];
    }

    //计算这一年的第几天——计算月份、天数的差值
    int TimeDay(int _year, int _month, int _day) {
        int month1=1;
        int DaySum=0;
        //以1月1日为起点
        if (_month == 1 && _day == 1) {
            return 1;
        } else {
            for(month1=1;month1<_month;month1++)
            {
                DaySum+=GetMonthDay(_year,month1);
            }
            DaySum+=_day;
            return DaySum;
        }
    }

    void print()
    {
        int Days=TimeDay( _year,  _month,  _day);
        cout<<Days<<endl;
    }

    friend istream& operator>>(istream& in, Date& d) {
        in >> d._year >> d._month >> d._day;
        return in;
    }
  private:
    int _year;
    int _month;
    int _day;
};

int main() {
    Date d1(1, 1, 1);
    cin >> d1;
    d1.print();
    return 0;
}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务