どうしてもわからないロジックが御座います。
最終実行時間と現在日時の差を秒数で求めたいです。
時間は下記の様になっております。
20100313042022 ⇒ 2010年03月13日04:20:22
last = 20100313042022;
now = 20100313042322;
の様に入っております。
普通に引いてしまうと勿論駄目かと思うので
-40をしてみたりとやってみたのですがイマイチ上手くいきません。
宿題等ではなく現在使っている謎解きゲームで使いたいんです・・・。
言語はC++です。
ご教授いただけないでしょうか。
時間の差分について
Re:時間の差分について
こんな感じでどうでしょう。
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に二つの時刻の差を秒数で表した結果が格納されます。
エラーチェックはしていないので、必要に応じて追加してください。
また、テストもしていませんので、おかしいようなら適当に直してください。
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に二つの時刻の差を秒数で表した結果が格納されます。
エラーチェックはしていないので、必要に応じて追加してください。
また、テストもしていませんので、おかしいようなら適当に直してください。