我原来一个DOS的程序通过一个GPS分脉冲对时,程序如下:
struct tm*local;
//struct date d;
time_t this_t;
this_t=time(NULL);
local=localtime(&this_t);
struct dostime_t reset;
reset.hour=local->tm_hour;
if (local->tm_sec>30)
{
reset.minute=local->tm_min+1;
if (reset.minute>59)
{
reset.minute=59;
reset.second = 59;
}
else
reset.second = 0;
}
else
{
reset.minute=local->tm_min;
reset.second = 0;
}
reset.hsecond = 0;
_dos_settime(&reset);
就是到整分时接收到一个GPS分脉冲,然后通过settime()函数对时,现场运行了一个月也没有问题,可是又过去2个月时钟差了20多天,这段逻辑有问题吗?