今天仲浤2周岁了。
int 返回月的天数(int N, int Y)
{//缘由https://bbs.csdn.net/topics/395074486
return (Y == 2 ? ((!(N % 4) && (N % 100)) || !(N % 400) ? 29 : 28) : (((Y <= 7 && Y % 2) || (Y>7 && !(Y % 2))) ? 31 : 30));
}
class 自定义的日期类
{//缘由https://bbs.csdn.net/topics/395300443
int 年, 月, 日;//数据成员,表示当前日期的年、月、日
public:
自定义的日期类(int 年值 = 1, int 月值 = 1, int 日值 = 1) //构造函数,设定年、月、日;并设置参数默认值
{ 年 = 年值; 月 = 月值; 日 = 日值; }
void 增加一天();
int 计算年的第几天();
bool 判断是否闰年();
int 确定日期周几(bool 选);
int 二日期相减(自定义的日期类 定义的日期);
bool 二日期相等(自定义的日期类 定义的日期);
void 屏幕输出日期对象的有关数据(年、月、日)()
{
int 月日 = 计算月的天数(年, 月);
if (月日 <= 日)日 = 月日;//纠正输入月的日子
cout << 年 << ":" << 月 << ":" << 日 << endl;
}
};
void 自定义的日期类::增加一天()
{
int 月日 = 计算月的天数(年, 月);
if (月日 < 日)日 = 月日;//纠正输入月的日子
if (计算月的天数(年, 月) > 日)++日; else ++月, 日 = 1;
if (月 > 12)++年, 月 = 1;
}
bool 自定义的日期类::二日期相等(自定义的日期类 定义的日期)
{
return (定义的日期.年 == 年&&定义的日期.月 == 月&&定义的日期.日 == 日);
}
int 自定义的日期类::二日期相减(自定义的日期类 定义的日期)
{
int 后日子 = 0, 前日子 = 0, 前年日 = 0, 判 = 定义的日期.年 - 年, 计年 = 定义的日期.年 - 1, 计月 = 12;
if (判)计月 = 12;
while (判--)
{
while (计月) 前年日 += 计算月的天数(计年, 计月--);
计月 = 12; --计年;
}
计月 = 月; while (--计月)前日子 += 计算月的天数(年, 计月); 前日子 += 日;
计月 = 定义的日期.月; while (--计月)后日子 += 计算月的天数(定义的日期.年, 计月); 后日子 += 定义的日期.日;
return 前年日 + (后日子 - 前日子);
}
int 自定义的日期类::确定日期周几(bool 选 = false)
{
int 计算年 = 年, 总天数 = (((--计算年) ? 365 * 计算年 + (计算年 / 4 - 计算年 / 100 + 计算年 / 400) : 0) + 计算年的第几天());
return 选 ? 总天数 : 总天数 % 7;
}
int 自定义的日期类::计算年的第几天()
{
int 日子 = 0, 计算月 = 月;
while (--计算月)日子 += 计算月的天数(年, 计算月); 日子 += 日;
return 日子;
}
bool 自定义的日期类::判断是否闰年()
{
return (返回月的天数(年, 2) == 28 ? 0 : 1);
//return (((!(年 % 4) && 年 % 100) || !(年 % 400)) ? 1 : 0);
};
int 年值 = 0, 月值 = 0, 日值 = 0, 年值1 = 0, 月值1 = 0, 日值1 = 0;
cin >> 年值 >> 月值 >> 日值 >> 年值1 >> 月值1 >> 日值1;
自定义的日期类 年月日(年值, 月值, 日值), 年月日1(年值1, 月值1, 日值1);
年月日.屏幕输出日期对象的有关数据(年、月、日)();
年月日1.屏幕输出日期对象的有关数据(年、月、日)();
cout << (年月日.判断二日期是否相等(年月日1) ? "相等" : "不等") << endl;
年月日.增加一天();
年月日.屏幕输出日期对象的有关数据(年、月、日)();
年月日1.增加一天();
年月日1.屏幕输出日期对象的有关数据(年、月、日)();
自定义的日期类 年月日(2018, 12, 16), 年月日1(2019, 12, 16);//前-后,与微软后-前不同
cout << 年月日.二日期相减(年月日1) << endl;
int 周几 = 年月日1.确定日期周几();
自定义的日期类 年月日(2018, 7, 1), 年月日1(2019, 6, 1);//前-后,与微软后-前不同
int 闰年 = 2019;
cout << to_string(年月日.二日期相减(年月日1))+"天"
<< ((年月日.判断是否闰年() || 年月日1.判断是否闰年()) ? "闰年" : "平年")
<< (年月日.二日期相减(年月日1) >= ((年月日.判断是否闰年() || 年月日1.判断是否闰年()) ? 366 : 365) ? "满一年" : "不足年") << endl;
自定义的日期类 年月日(2018, 7, 1), 年月日1(2019, 6, 1);//前-后,与微软后-前不同
cout << 年月日1.确定日期周几(true) - 年月日.确定日期周几(true) << endl;//与微软后-前同