我想获得提前 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/