我有一个存储在长值中的日期,即 20130228,我需要对其执行操作,例如添加 30 天或 50 天等。关于如何将其转换为更合适的日期有什么建议吗?
最佳答案
如果这样存储
unsigned long d = 20130228;
你必须先用简单的算法将它拆分并放入一个struct tm
中
struct tm tm;
tm.tm_year = d / 10000 - 1900;
tm.tm_mon = (d % 10000) / 100 - 1;
tm.tm_mday = d % 100;
tm.tm_hour = tm.tm_min = tm.tm_sec = 0;
tm.tm_isdst = -1;
然后您可以将一些值 30
添加到 tm.tm_mday
。如果你使用 mktime()
,您将收到一个 time_t
作为 seconds since the epoch并且 tm
中的字段将被规范化
time_t t = mktime(&tm);
关于将长值转换为日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15133989/