gpt4 book ai didi

c - 如何在C中获取带有 future 时间的日期

转载 作者:太空宇宙 更新时间:2023-11-04 01:18:29 24 4
gpt4 key购买 nike

我想获得提前 2 小时的约会。目前我正在尝试这样做:我将小时值加 2

void printTodayFutureTime()
{
char finalDate[50];
time_t t;
struct tm *date;

memset(finalDate, '\0', 50);

t = time(NULL);
date = localtime(&t);
if(date == NULL)
{
printf("Unable to get localtime\n\n");
return;
}

int today = date->tm_mday;
int month = date->tm_mon + 1;
int year = date->tm_year + 1900;
int hour = date->tm_hour;
int minute = date->tm_min;
int sec = date->tm_sec;

snprintf(finalDate, 50, "%d-%d-%dT%d:%d:%d", year, month, today, hour + 2, minute, sec);

printf("Today's date with future time is: %s\n\n", finalDate);
}

但是如果时间是 22、23,这将不起作用,因为它会跳到 24 和 25 小时...谁能给我一些建议或帮助。

最佳答案

即使您设法解决了午夜的问题,也需要考虑夏令时和换月,这意味着您还必须考虑闰年……不要去那里。

相反,在将时间转换为 time_t 之前,只需将时间加上 2 小时(2 * 60 * 60 秒)就容易多了:

    t = time(NULL) + 2 * 60 * 60;
date = localtime(&t);

这更可靠,因为 time_t 只是自某个明确定义的纪元以来的秒数。

关于c - 如何在C中获取带有 future 时间的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50494792/

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