注意,在判断明天日期时,要加入跨月、跨年、闰年的判断
例如9.月30日的明天是10月1日,12月31日的明天是第二年的1月1日
2月28日的明天要区分是否闰年,闰年则是2月29日,非闰年则是3月1日
输入
测试数据的组数t
第一组测试数据的年 月 日
..........
要求第一个日期的年月日初始化采用构造函数,第二个日期的年月日初始化采用setDate方法,第三个日期又采用构造函数,第四个日期又采用setDate方法,以此类推。
输出
输出今天的日期
输出明天的日期
样例查看模式
正常显示查看格式
输入样例1 <-复制
输出样例1
#include<iostream>
using namespace std;
bool isleap(int year)
{
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
{
return true;
}
else
{
return false;
}
}//判断是不是闰年
class Date
{
int year, month, day;
public:
Date();
Date(int y, int m, int d);
int getYear();
int getMonth();
int getDay();
void setDate(int y, int m,int d);
void print();
void addOneDay();
};
Date::Date()
{
year = 0;
month = 0;
day = 0;
}
Date::Date(int y, int m, int d)
{
year = y;
month = m;
day = d;
}
int Date::getYear()
{
return year;
}
int Date::getMonth()
{
return month;
}
int Date::getDay()
{
return day;
}
void Date::setDate(int y, int m, int d)
{
year = y;
month = m;
day = d;
}
void Date::print()
{
cout << year << "/";
if (month < 10)
{
cout << "0" << month;
}
else
{
cout << month;
}
cout << "/";
if (day < 10)
{
cout << "0" << day;
}
else
{
cout << day;
}
}
void Date::addOneDay()
{
day++;
if (month == 1 || month == 3 || month == 5 || month == 6 || month == 7 || month == 8 || month == 10 || month == 12)
{
if (day > 31)
{
day = 1;
month++;
}
}
else if (month == 4 || month == 6 || month == 9 || month == 11)
{
if (day > 30)
{
day = 1;
month++;
}
}
else if (month == 2)
{
if (isleap(year))
{
if (day > 29)
{
day = 1;
month++;
}
}
else
{
if (day > 28)
{
day = 1;
month++;
}
}
}
if (month > 12)
{
year++;
month = 1;
}
}
int main()
{
int t;
cin >> t;
int year, month, day;
while (t--)
{
//要求第一个日期的年月日初始化采用构造函数,
// //第二个日期的年月日初始化采用setDate方法,
//第三个日期又采用构造函数,第四个日期又采用setDate方法,以此类推。
//这里我并没有按照题目要求
cin >> year;
cin >> month;
cin >> day;
Date d(year, month, day);
cout << "Today is ";
d.print();
cout<< endl;
d.addOneDay();
cout << "Tomorrow is ";
d.print();
cout << endl;
}
return 0;
}
C++日期判断及初始化示例
博客围绕C++开发,介绍判断明天日期时需考虑跨月、跨年、闰年情况,如9月30日、12月31日、2月28日等。还说明了输入测试数据组数及日期初始化方式,要求构造函数和setDate方法交替使用,最后输出今天和明天日期。

被折叠的 条评论
为什么被折叠?



