• ベストアンサー

時間の足し算 C++Builder

時間の足し算をしたいです。 同日内での計算はできるのですが、0時をこえたときの 計算ができません。 例)23:30~0:30 どなたか、お願いします。 環境はC++Builder6です。

質問者が選んだベストアンサー

  • ベストアンサー
  • KoHal
  • ベストアンサー率60% (110/181)
回答No.5

質問の趣旨は当日23:30から翌日00:30までの経過時間を求めるということでよろしいのでしょうか? この場合、日付を示すデータは別に管理されているのでしょうか? そして、起点時刻は当日、終点時刻は翌日と決め打ちできるのでしょうか? もし、そうであるなら、  TTime from("23:30");  TTime to("00:30");  to+=1; //日付を1日進める。  TTime dif = to - from;  ShowMessage( dif ); これでいけます。 しかし、普通は、日付と時刻と一括してTDateTimeで管理するほうが楽だと思いますが。それならただ単に引算するだけで経過時間が求まります。 TTimeの扱いについてはヘルプでTDateTimeを参照。TTimeは実質TDateTimeと同じオブジェクトです。 同じくヘルプの「VCLリファレンス→日付時刻ルーティン」も役に立ちます。

その他の回答 (4)

  • osumitan
  • ベストアンサー率33% (102/307)
回答No.4

時間の引き算ですよね? 単純に引き算して、結果<0なら24:00を足す、 ということで解決できるのでは、と思います。 もし一時的に負の値が出るのがまずいようなら、 A~Bの差を取るときA>BならBに24:00を足し、 それから引き算をすればいいと思います。 一時的に24:00を超えるのもまずいようなら、 A>Bのときは24:00-A+Bと計算する、 というのはどうでしょうか。

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.3

mktime関数を調べてみてください。

  • eastsl
  • ベストアンサー率14% (45/319)
回答No.2

たとえば、0時を25時、24時以降は24時の連続として置き換えて計算する方法がよいと思います。

  • annyGrace
  • ベストアンサー率18% (10/54)
回答No.1

だし算と言うよりは引き算では?

関連するQ&A