C++最简单的日期计算

开发过程中有时候需要进行有关日期的计算,比如计算3个月前的日期,计算60天后的日期,计算两年前的日期等。自己算起来非常麻烦,难免有疏漏。

利用tm结构体和time_t,可以轻松地准确地计算这些日期。程序如下:

#include <iostream>
#include <time.h>


void PrintTime(tm tmp_time)
{
	printf("%04d_%02d_%02d\n", tmp_time.tm_year + 1900, tmp_time.tm_mon + 1, tmp_time.tm_mday);
}

int main(int argc, char* argv[])
{

	//当前时间
	time_t tm_time = time(0);
	tm current_time = *localtime(&tm_time);
	PrintTime(current_time);


	//十八个月前的时间
	tm tmp_time = current_time;
	tmp_time.tm_mon -= 18;
	time_t time_label = mktime(&tmp_time);
	tmp_time = *localtime(&time_label);
	PrintTime(tmp_time);

	//六十天前的时间
	tmp_time = current_time;
	tmp_time.tm_mday -=60;
	time_label = mktime(&tmp_time);
	tmp_time = *localtime(&time_label);
	PrintTime(tmp_time);

	//一百八十天后的时间
	tmp_time = current_time;
	tmp_time.tm_mday += 180;
	time_label = mktime(&tmp_time);
	tmp_time = *localtime(&time_label);
	PrintTime(tmp_time);
	return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值