C アプリケーションでこの関数を使用してtime(NULL)
、1970 年以降の秒を取得しています。1 時間の差で情報が返されていることに気付きました。
tm
次に、 を使用して結果を構造体に変換しようとしましたが、フィールドが設定されているlocaltime
ことに気付きました。tm_isdst
コードは次のようになります。
time_t tempo;
struct tm sttime;
memset( &sttime, 0, sizeof( sttime ) );
tempo = time( NULL );
printf( "%d\n", tempo );
sttime = *( localtime( &tempo ) );
sttime.tm_isdst = 0;
tempo = mktime( &sttime );
printf( "%d\n", tempo );
最初はprintf
、tempo
1時間差でプリント中です。2番目に、正しい値を出力しています。
私はMs DOS 6.0
OS でアプリケーションを実行しており、アプリケーションは でコンパイルされていWatcom v1.3
ます。
情報はどこDaylight Savings Time
から来たのですか?DOS はこの情報を保持していますか?