localtime関数の挙動がおかしい

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
がるる

localtime関数の挙動がおかしい

#1

投稿記事 by がるる » 14年前

すみませんが、皆様のお知恵を貸していただきたく書き込ませていただきます。
下記の環境で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);
}
codeタグをお使いください。 http://dixq.net/board/board.html by softya(ソフト屋)

実行結果
2011/5/30 23:59:59
2011/6/1 0:0:0
utime=1309445999, ntime=1309446000

使用環境 winxp32bit版 Dev-c++ で gcc 4.50 を用いて作成

初級者
記事: 200
登録日時: 15年前

Re: localtime関数の挙動がおかしい

#2

投稿記事 by 初級者 » 14年前

tm_monは、確かゼロ始まりだったような気がします。

がるる

Re: localtime関数の挙動がおかしい

#3

投稿記事 by がるる » 14年前

ありがとうございます。
解決しました。
ついうっかり忘れていました。
お恥ずかしい。

閉鎖

“C言語何でも質問掲示板” へ戻る