時間の差分について

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

時間の差分について

#1

投稿記事 by Samth » 15年前

どうしてもわからないロジックが御座います。
最終実行時間と現在日時の差を秒数で求めたいです。

時間は下記の様になっております。
20100313042022 ⇒ 2010年03月13日04:20:22

last = 20100313042022;
now = 20100313042322;

の様に入っております。

普通に引いてしまうと勿論駄目かと思うので
-40をしてみたりとやってみたのですがイマイチ上手くいきません。

宿題等ではなく現在使っている謎解きゲームで使いたいんです・・・。
言語はC++です。
ご教授いただけないでしょうか。

たかぎ

Re:時間の差分について

#2

投稿記事 by たかぎ » 15年前

こんな感じでどうでしょう。

struct tm t1 = {}, t2 = {};

t1.tm_year = -1900 + last / 10000000000;
t1.tm_mon = -1 + last / 100000000 % 100;
t1.tm_mday = last / 1000000 % 100;
t1.tm_hour = last / 10000 % 100;
t1.tm_min = last / 100 % 100;
t1.tm_sec = last % 100;

t2.tm_year = -1900 + now / 10000000000;
t2.tm_mon = -1 + now / 100000000 % 100;
t2.tm_mday = now / 1000000 % 100;
t2.tm_hour = now / 10000 % 100;
t2.tm_min = now / 100 % 100;
t2.tm_sec = now % 100;

double d = difftime(mktime(&t2), mktime(&t1));

これで、dに二つの時刻の差を秒数で表した結果が格納されます。
エラーチェックはしていないので、必要に応じて追加してください。
また、テストもしていませんので、おかしいようなら適当に直してください。

閉鎖

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