【发布时间】:2013-06-23 20:25:13
【问题描述】:
我正在尝试使用mktime 和difftime 计算两个日期之间的日期差。其中一个日期是另一个struct 内的struct tm,另一个日期是main 内的struct tm。
mktime 在main 中的日期可以正常工作,但在struct 中的日期一直返回-1。
我想我忽略了如何在struct 中访问struct 的一些非常明显的事情,但我找不到答案。提前致谢。
代码如下
#include <stdio.h>
#include <time.h>
struct consulta_cand {
struct tm nascimento;
};
int main(void)
{
struct consulta_cand candidato;
time_t now;
struct tm final2012;
double timeprint;
now = time(NULL);
final2012 = *localtime(&now);
final2012.tm_mday = 28;
final2012.tm_mon = 10 - 1;
final2012.tm_year = 2012 - 1900;
final2012.tm_hour = 23;
final2012.tm_min = 59;
final2012.tm_sec = 59;
timeprint = mktime(&final2012);
printf("%.f\n", timeprint);
candidato.nascimento = *localtime(&now);
candidato.nascimento.tm_mday = 14;
candidato.nascimento.tm_mon = 10 - 1;
candidato.nascimento.tm_year = 1967 - 1900;
candidato.nascimento.tm_hour = 0;
candidato.nascimento.tm_min = 0;
candidato.nascimento.tm_sec = 0;
timeprint = mktime(&candidato.nascimento);
printf("%.f\n", timeprint);
return 0;
}
【问题讨论】:
-
你在哪个操作系统上测试这个?
-
Windows 7,带有 TDM-GCC 64 位
标签: c struct mktime localtime time-t