gpt4 book ai didi

c++向日期添加或减去值

转载 作者:行者123 更新时间:2023-11-28 00:01:25 24 4
gpt4 key购买 nike

我不知道如何为日期添加值。想象一下,我有一个像 2012-5-15 这样的日期。在我解析它之后,我分别获得了年、月和日,我试图通过使用 time_t 和 mktime 将我的确切日期转换为天数。我有机会把它从我找到的天数或秒数转换回日期吗?这是我尝试执行此操作的部分代码;

if(operation="+"){
tm tm1=make_tm(year,mon,day);
time_t time1=mktime(&tm1);
int seconds_per_day=60*60*24;
time_t second=time1/seconds_per_day;
int sum=second //Trying to convert to the int from my time_t, don't know
//if it is neccesary
sum=sum+value //the value I want to add

所以,基本上如果我提供像 2012/5/15 这样的输入。它使用该方法计算它过去了多少天,但我只需要将它转换为日期并显示出来。你有什么想法吗?

最佳答案

如果您正在寻求一种方法来将天数添加到特定日期,这里有一种与您的尝试类似的方法:

tm addDays(tm t1, int days)
{
time_t epoch = mktime(&t1);
epoch += (60*60*24 * days);
return *localtime(&epoch);
}

然后使用返回的tm结构,访问tm_yeartm_montm_mday成员得到yyyymmdd 需要输出。一个非常粗略和现成的例子(没有正确的格式):

tm t1;
std::fill((char*)&t1, (char*)&t1 + sizeof(t1), 0);
t1.tm_year = 2016;
t1.tm_mon = 8;
t1.tm_mday = 2;

auto result = addDays(t1, 30);

std::cout << result.tm_year << '/' << result.tm_mon << '/' << result.tm_mday << std::endl;

关于c++向日期添加或减去值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38722589/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com