• ベストアンサー

時間の足し算 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

  • C++ Builder6 をふたたび動かしたい

    数年前まで C++ Builder6を使ってコマンドラインプログラムを作っていました。 久しぶりに使おうとすると、以下のエラーメッセージがでて新規プログラムが作れません。再インストールをしても同じです。 C++ 5.5 がフリーで出ているようなんですが、元のプログラムが複数あって、Builderの環境で使いたいと思うのです。 すでにボーランド社はありません。 どのようにすれば解決できるのかわかれば教えてください。よろしくお願いします。 C:\Program Files\Borland\CBuilder6\bin\bcb.$$$ から C:\Program Files\Borland\CBuilder6\bin\bcb.droに変更できません。

  • VC++かC++Builderか?

    現在開発環境としてVC++(Ver6.0)を使っていますが、 C++Builderの導入を考えています。 (上司がVC嫌いって話もありますが) こちらは全く使ったことがないのでよくわからないのですが、 両者の違い(?)、また使い勝手などご意見をお聞きしたいのです。 また、VCとC++Builder間での移植は容易に行えるものなのでしょうか? はっきりとした質問でなくてすみませんが、よろしくお願いします。

  • C++ Builderについて

    以前から、C言語、C++などをやっていて、最近になって、C++Builder(Version 5.0)を使ってみようと思いました。すこしいじってみたのですが、さまざまなことを簡単にできそうな気がしました。しかしながら、正直なところ分からないことだらけです。ネット上で初心者向けの本を購入したのですが、内容は薄く、自分が目的とするものに達するには十分ではありませんでした。探し方が悪いのか、本もさほど見つかりませんでした・・・・。 また、様々なサイトも見てみたのですが、やはりC++Builderの初歩的な使い方もいまいち分かっていないせいか、わけがわかりません。一応、購入した本で勉強しているのですが・・・・。 できることなら、初歩的なことから、詳しく様々なことが分かり易く載っている本等は無いでしょうか?C言語のときは、ぶ厚い本で勉強しました。そのような本もたくさんあったように思われます。C++Builderには無いのでしょうか?それともCやC++などをみっちりやらなければ、使えないって事なのでしょうか?

  • C++Builder

    卒業研究で昨日からC++Builderを使うようになったのですが、まったくわかりません。 「慣れれば普通にプログラム作るより簡単だ」と教官はいいいますが… それで昨日課題が出ました。 C++Builderでサイコロを作成し、クリックすれば数字が変わる用にしろ との事。 ずっとやってるのですが…ランダムに数字を表示するのってどうゆうの使うんですか? …もぅ初歩的な質問ですいません… 穴があったら入りたい…

  • C++Builderの選択

     いつも勉強させていただいています。どうぞよろしくお願いします。  今手元にあるアプリ(C++Builder5.0のソースコード付き)をいじりたく、 これを機会に初めてC++の勉強をしたいのですが(経験のある言語は Fortran、VBです)、C++Builderのどれを購入するかで迷っております。  ポイントとしましては、 ・上のC++Builder5.0のコードがコンパイル可能なもの  (先日、無料のBorland C++Compiler5.5をダウンロードしてコンパイルを試みても  できませんでしたorz (vcl.hというファイルが足りないようです)が、  C++Builderであればバージョン違いでもコンパイルできるのでしょうか?) ・書籍が比較的多いもの。(調べているとC++Builder6は比較的多そうな?気がしたのですが。。。) ・今後も暫く使えそうなもの。(C++Builder5 Personalとかかなり安いようなのですが、  皆さんもっと新しいもので開発なされているという事でしょうか。。。?) ・¥は7~8万くらいまで?  PersonalとProfessionalの違いや制限もよく分からないので、 もしお詳しい方がいらっしゃいましたら、ぜひ教えていただければと思います。  どうぞよろしくお願いします。

  • C++ Builder6について

    c++ builder6でMemo1 などに入力した値をポインタに格納したいんですが、やり方がうまくいかず、いろいろ試してみても出来ません。どなたか方法を教えてくださいませんか?

  • VC++ と C++Builder

    C++の基本的な構造は理解していて、Win32APIを勉強しようとVC++でプログラミングを始めた者です。参考書は猫でもわかるWindowsプログラミングを見ながら勉強しています(難しくてあまり理解出来ていませんが)。 しかし、機能が多すぎたりと使いこなす自信がありません。 C++Builderに変えてみようかと思っているのですが、VC++とC++Builderの違いを教えて下さい。漠然としすぎていてアホっぽい質問ですが・・。 VC++とC++Builderのプログラムの書き方の大きな違いなどはあるのでしょうか? また、みっちり調べたつもりですが無償のBorlandC++Builderが見あたらないのですが・・・。

  • C++ Builder 2009のマニュアル

    現在開発環境ソフトでcode Gear C++ Builder 2009を使用しているのですが、この開発環境ソフトのPDFとかの取扱説明書などの資料はダウンロードできるところをご存じの方いらっしゃいませんでしょうか? どうぞ、教えて頂きますよう、お願い致します。

  • エクセルの時間の足し算

    エクセル2010で時間の足し算をしたのですが、うまくいきません。 状況としては、 現在セルの表示形式は、h:mmです。 計算は、 0:10+0:13+0:06+0:09+0:05+0:30+0:04+0:06+0:07+0:30+0:10+0:30+0:09+0:11+0:03 なんですが、結果が1:33と表示されてしまいます。 30分が3つ入っているのでそれだけで1:30にはなるのですが・・・うまくいきません。 足し算は、オートサムで行っています。 もっと短い0:06+0:05+0:30は、ちゃんと0:41と表示されます。 どうすれば良いでしょうか。

  • 個人でC++Builderを始めるには?

    質問に答えていたただいた方々、本当にありがとうございました。いろいろ考えてみたところ、C++Builderをやってみようかと思っています。 そこで、C++BuilderはPC屋さんに売ってあるのかという事と(昨日行ったらなかったもので…)、いくらくらいするものかということをお聞きしたく質問させてもらってます。またよろしくお願いします。