time関連



時差の計算方法

時差をtime_t型で取得しようとしても、ダイレクトにその値を返してくれる
サービスが見当たらない・・・。
…ので、自前で時差を計算するには少し工夫が必要。
おそらく以下の方法なら、きちんとロケールの設定しておけばどこでも通用すると
思われる。

time_t CalcTimeDifference( void )
{
   time_t utc_time, tmp_time;
   tm utc_tm;

   time( &utc_time );	// UTC時間
  
   gmtime_s( &utc_tm, &utc_time );	// UTC時間での tm型

   tmp_time = mktime( &utc_tm );   // UTC時間のままmktime()を使う(本当はローカル時間を使う)

   // ローカル⇒UTC変換のはずなので、UTC時間を入れると時差分の誤差が生じる

   return (utc_time - tmp_time);	// 誤差を時差として値を返す
}
最終更新:2009年05月26日 15:47
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。