gpt4 book ai didi

使用 c 中的 mktime() 检查字符串是否为日期

转载 作者:行者123 更新时间:2023-11-30 17:09:37 25 4
gpt4 key购买 nike

是否可以确定某些字符串,例如。 2015-10-19 是一个日期,使用 mktime()?我想避免像 2015-a2-19a015x08-b9 等字符串,并且我必须避免 ifsswitch.

谢谢。

最佳答案

尝试将字符串扫描到 struct tm 中,然后对其调用 mktime:

// returns 0 if not a valid date, !=0 otherwise
int isValidDate(const char *s)
{
struct tm t = {};
sscanf(s, "%d-%d-%d", &t.tm_year, &t.tm_month, &t.tm_day);
return ((int)mktime(&t) + 1);
}
如果

mktime 无法用 time_t 表示,则返回 -1,因此我们将其加一以得到零。无需检查 sscanf 的返回值,因为它无论如何都会导致 mktime 失败。

请注意,这仅告诉您 Unix epoch 中的日期是否有效。 (通常),所以 1500-11-11 将是无效的,即使它显然是一个有效的日期。

关于使用 c 中的 mktime() 检查字符串是否为日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33212970/

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