時間の計算の仕方

解決


どすこい  2003-06-27 07:50:25  No: 3871  IP: [192.*.*.*]

こんばんわ。delphi初心者ですよろしくおねがいします。時刻の演算の仕方について質問なのですが、現在の時間を求めるのはnow関数で求めてFormatDateTime 関数でフォーマットすると、19:20:50というような文字型で表示することができました。例えば19:20:50という値をから18:50:20という値引き算したいのですがどのようにしたら良いのでしょうか?  何か意見がありましたらよろしくお願いいたします。多分FormatDateTime 関数でフォーマットした19:20:50という表示を数字に変換すれば良いと思うのですが・・・わかりませんでいた。ネットで根気よく調べてみたのですが、わかりませんでした。よろしくおねがいいたします。

編集    削除
通りすがりです  2003-06-27 15:17:04  No: 3872  IP: [192.*.*.*]

ネットもいいですが、ヘルプファイルも見てみましょう。
now関数、FormaDateTime関数あたりを手がかりに
関連する別な関数が見つかります。

編集    削除
どすこい  2003-06-27 19:44:49  No: 3873  IP: [192.*.*.*]

返答ありがとうございます。私のdelphi6なのですが、ヘルプインストールされていません。CD-ROMも紛失してしましました。now関数、FormaDateTime関数での演算方法ありましたら、よろしくおねがいいたします。

編集    削除
通りすがりです  2003-06-27 20:16:24  No: 3874  IP: [192.*.*.*]

CD-ROM紛失?
Personal版なのでしょうか?
ヘルプがないのは今後非常に困ることになるでしょうから、
http://www.borland.co.jp/download/delphi.html
でヘルプを入手してインストールされることをお勧めします。

例えば
var
  ATime: TDateTime; // TDateTimeはdouble型
  BTime: TDateTime;
  Delta: TDateTime;
begin
  ATime := Now;
  BTime := StrToTime('18:50:20');
  Delta := ATime-BTime;
  Label1.Caption := '経過時間:'+FormatDateTime('hh:nn:ss',Delta);
end;

編集    削除
どすこい  2003-06-27 21:28:13  No: 3875  IP: [192.*.*.*]

ご丁寧な返答ありがとうございます。CD-ROMを紛失してしまいました。ヘルプのダウンロード先まで教えていただきありがとうございます。本当に助かります。今からヘルプをダウンロードして時刻の計算のプログラムを作成しようと思います。

編集    削除
にしの  2003-06-27 21:28:45  No: 3876  IP: [192.*.*.*]

Delta := ATime-BTime;
の部分は、注意が必要です。

例えば、
  dt1 := StrToDateTime('1899/12/30 3:00:00');
  dt2 := StrToDateTime('1899/12/29 21:00:00');
  dt3 := dt1 - dt2;
だと、
dt1 = 0.125;
dt2 = -1.875;
dt3 = 0.125 - (-1.875) = 2;
となり、
結果、1900/1/1になります。

編集    削除
どすこい  2003-06-27 21:38:08  No: 3877  IP: [192.*.*.*]

通りすがりですさん  本当にありがとうございました計算できました。大変丁寧な返答感謝しています。また機会がありましたらよろしくおねがいいたします。

編集    削除
通りすがりです  2003-06-27 21:47:55  No: 3878  IP: [192.*.*.*]

解決済のようですが、
にしのさんの指摘されている部分は以外な落とし穴で、重要な部分です。
ヘルプの「TDateTime」をよーく理解してください。
にしのさんに感謝いたします。では

編集    削除
どすこい  2003-06-28 03:30:59  No: 3879  IP: [192.*.*.*]

にしのさん返答遅れてもうしわけありませんです。時間については注意しなければならないことがたくさんあるので、気をつけてゆきます。大変丁寧な返答ありがとうございます。勉強になりました。

編集    削除