判断处于某段时间内

struct Date
{
	short year;
	short mon;
	short day;
	
	Date(short y, short m, short d)
		: year(y), mon(m), day(d)
	{}
private:
	Date() {}
};

int BetweenDates(time_t tSecond, Date& dateBegin, Date& dateEnd, bool& result)
{
	tm* pTime = localtime(&tSecond);
	if (!pTime)
	{
		return -1;
	}

	pTime->tm_year = dateBegin.year-1900;
	pTime->tm_mon = dateBegin.mon-1;
	pTime->tm_mday = dateBegin.day;
	time_t tSecondBegin = mktime(pTime);
	if (tSecond == -1)
	{
		return -2;
	}
	cout << tSecondBegin << endl;

	pTime->tm_year = dateEnd.year-1900;
	pTime->tm_mon = dateEnd.mon-1;
	pTime->tm_mday = dateEnd.day;
	time_t tSecondEnd = mktime(pTime);
	if (tSecond == -1)
	{
		return -3;
	}
	cout << tSecondEnd << endl;

	time_t tSecondTmp = tSecondBegin;
	tSecondBegin = tSecondBegin<=tSecondEnd?tSecondBegin:tSecondEnd;
	tSecondEnd = tSecondTmp>=tSecondEnd?tSecondTmp:tSecondEnd;

	if (tSecond >= tSecondBegin && tSecond <= tSecondEnd)
	{
		result = true;
	}
	else
	{
		result = false;
	}

	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值