- ベストアンサー
時間の足し算 C++Builder
時間の足し算をしたいです。 同日内での計算はできるのですが、0時をこえたときの 計算ができません。 例)23:30~0:30 どなたか、お願いします。 環境はC++Builder6です。
- みんなの回答 (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)
時間の引き算ですよね? 単純に引き算して、結果<0なら24:00を足す、 ということで解決できるのでは、と思います。 もし一時的に負の値が出るのがまずいようなら、 A~Bの差を取るときA>BならBに24:00を足し、 それから引き算をすればいいと思います。 一時的に24:00を超えるのもまずいようなら、 A>Bのときは24:00-A+Bと計算する、 というのはどうでしょうか。
- jacta
- ベストアンサー率26% (845/3158)
mktime関数を調べてみてください。
- eastsl
- ベストアンサー率14% (45/319)
たとえば、0時を25時、24時以降は24時の連続として置き換えて計算する方法がよいと思います。
- annyGrace
- ベストアンサー率18% (10/54)
だし算と言うよりは引き算では?