下記の環境でlocaltime関数を用いて時間を取得しようとしたのですが、
2011年5月30日23:59:59の次が6月1日00:00:00になってしまって困っています。
下記がその検証用コードと実行結果です
おそらく私が何かミスしていると思うのですが、問題が見つかりません。
宜しくご指導ください。
int main ( int argc, char **argv )
{
time_t utime,
ntime;
struct tm *t_st;
utime = 1309445999;
t_st = localtime ( &utime );
printf ( "%d/%d/%d %d:%d:%d\n" , t_st->tm_year+1900 , t_st->tm_mon , t_st->tm_mday , t_st->tm_hour , t_st->tm_min , t_st->tm_sec);
ntime = utime + 1;
t_st = localtime ( &ntime );
printf ( "%d/%d/%d %d:%d:%d\n" , t_st->tm_year+1900 , t_st->tm_mon , t_st->tm_mday , t_st->tm_hour , t_st->tm_min , t_st->tm_sec);
printf("utime=%ld, ntime=%ld\n" , utime, ntime);
}実行結果
2011/5/30 23:59:59
2011/6/1 0:0:0
utime=1309445999, ntime=1309446000
使用環境 winxp32bit版 Dev-c++ で gcc 4.50 を用いて作成