概述
在我们正在做的铁路项目的删除超时文件的功能中,需要作出超时逻辑来判断遍历到的文件是否为超时文件,从而需要计算距离系统时间N天前的日期。查找资料和改编之后实现了这个小目标。
class Date
{
private:
int year, month, day;
void DecDay();
//日期减少一天函数
public:
Date(int y, int m, int d) : year(y), month(m), day(d) {};
bool IsLeapYear();
//是否闰年
Date& DecDays(int days)
//减去任意天数
{
for (int i = 0; i < days; i++)
//减少任意天数 定义成了内联函数
{
DecDay();
}
return *this;
}
bool IsFirstofMonth();
//判断是否到了月初
int y() const { return year; };
int m() const { return month; };
int d() const { return day; };
};
bool Date::IsLeapYear()
//判断是否为闰年
{
return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
}
void Date::DecDay()
//减少一天
{
if (IsFirstofMonth())
//判断是否是年初,月初
{
switch (month - 1)
{
case 0:
day = 31; month = 12; year--;
//判断是否为年初
break;
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
day = 31; month--;
break;
case 4:
case 6:
case 9:
case 11:
day = 30; month--;
break;
case 2:
if (IsLeapYear())
{
day = 29; month--;
break;
}
else
{
day = 28; month--;
break;
}
}
}
else
day--;
}
bool Date::IsFirstofMonth()
//判断是否为月初
{
if (day == 1)
return 1;
else
return 0;
}
“`
一天一天的往回返,是一个很清晰的思路。
最后
以上就是怕黑奇迹为你收集整理的计算距离系统时间N天前的日期的全部内容,希望文章能够帮你解决计算距离系统时间N天前的日期所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复