题解 | #日期类#

日期类

https://www.nowcoder.com/practice/130aa2d7d1f5436b920229dca253893b

#include "iostream"
#include "iomanip"
using namespace std;

class date250 {					// 日期类
private:
    int day;
    int year;
    int month;
public:
    date250();										// 构造函数:默认构造函数
    date250(int iDay, int iMonth, int iYear);		// 构造函数:带初值
    bool isLeap();									// 功能函数:判断是否为闰年
    void dayPlus();									// 功能函数:日期自增一天
    void printDate();								// 功能函数:规格化打印输出
};

date250::date250() {								// 构造函数:默认构造函数
    day = 1;
    year = 2001;
    month = 1;
}
date250::date250(int iYear, int iMonth, int iDay) {	// 构造函数:带初值
    day = iDay;
    month = iMonth;
    year = iYear;
}
void date250::printDate() {							// 功能函数:规格化打印输出
    cout << year << "-" << setw(2) << setfill('0') << month << "-" << setw(2) << setfill('0') << day << endl;
}
void date250::dayPlus() {							// 功能函数:日期自增一天
    int dayTab[2][13] = {
            {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31},
            {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}
    };
    if (++day > dayTab[isLeap()][month]) {
        day = 1;
        if (++month > 12) {
            month = 1;
            year++;
        }
    }
}
bool date250::isLeap() {							// 功能函数:判断是否为闰年
    if (year % 400 == 0 || year % 100 != 0 && year % 4 == 0) return true;
    return false;
}


int main() {
    int n, iDay, iMonth, iYear;
    cin >> n;										// 输入
    for (int i = 0; i < n; i++) {
        cin >> iYear >> iMonth >> iDay;				// 输入
        date250 date(iYear, iMonth, iDay);			// 构造函数
        date.dayPlus();								// 功能函数:日期自增一天
        date.printDate();							// 功能函数:规格化打印输出
    }
    return 0;
}

全部评论

相关推荐

无敌虾孝子:喜欢爸爸还是喜欢妈妈
点赞 评论 收藏
分享
10-15 09:13
已编辑
天津大学 soc前端设计
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务