文書番号: 401928
最終更新日: 1999/03/19
C/C++ 7.0 では、 1899年 12 月 31 日 午前 0 時 0 分 から経過した秒数 C/C++ 7.0 以外 (C 6.0 および QuickC 2.0 と Visual C++ 1.0) では、 1970年 1 月 1 日 午前 0 時 0 分 から経過した秒数それに伴い変数型 time_t の定義が以下のように異なっています。
C/C++ 7.0 では、 typedef unsigned long time_t; C/C++ 7.0 以外では、 typedef long time_t;日付データ等をデータファイルに残すアプリケーションプログラムの場合、time()
70 年 * 365 日 = 25550 日 + 1 日 (1899年12 月 31 日) = 1 日 + 17 閏年 = 17 日 25568 日 25568 日 * 24 時間 * 60 分 * 60 秒 = 2209075200 秒この秒数を以下のようにデータの修正に使用してください。
C/C++ 7.0 で作成したデータを他のバージョンで使用する場合 データの値から 2,209,075,200 秒を引く C/C++ 7.0 以外で作成したデータを C/C++ 7.0 で使用する場合 データの値に 2,209,075,200 秒を加える
<誤> typedef unsigned long time_t; <正> typedef long time_t;
typedef long time_t;
Keywords: C6 C7 KBBUG QC20 VC10 VC15 KB401928
Technology: kbAudDeveloper kbCCompPDS600DOS kbCCompSearch kbQC200 kbVCsearch kbZNotKeyword3 kbZNotKeyword8