時間の計算の仕方

解決


どすこい  2003-06-27 07:50:25  No: 3871

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


通りすがりです  2003-06-27 15:17:04  No: 3872

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


どすこい  2003-06-27 19:44:49  No: 3873

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


通りすがりです  2003-06-27 20:16:24  No: 3874

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

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


にしの  2003-06-27 21:28:45  No: 3876

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

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


通りすがりです  2003-06-27 21:47:55  No: 3878

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


どすこい  2003-06-28 03:30:59  No: 3879

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加