作業時間を求めるには?

解決


ちょび  2004-11-26 22:19:37  No: 11943

はじめまして。
Delphi7を使って時間計算をしているのですが、
皆さんのお力を貸して下さい。

フォームにテキストボックス3つ、ボタン1つがあります。
Edit1に作業開始時間、Edit2に作業終了時間を入力し、
ボタンをクリックするとEdit3に作業時間を入力したいと思っています。

作業開始時間に「10:00」、作業終了時間に「12:30」と入力した時、
普通に「作業時間=作業終了時間−作業開始時間」とすると
Edit3にセットされる値は「2:30」という時間数になってしまいます。
しかし、作業時間には時間単位で「2.5」というようにセットしたいと思っています。
同様に「10:00」〜「12:45」であれば「2.75」というようにセットしたいのです。
何か簡単に出来る方法はありませんか?

ヘルプを見て「MinuteSpan関数」や「MinuteBetween関数」など使えるかな?と
思ったのですが、使い方がわからず行き詰っています・・・。
この関数についても使い方を教えていただけたらと思います。

よろしくお願いします。


HOta  2004-11-26 22:45:02  No: 11944

一般的には分単位で計算して、時間に直します。
この「10:00」などは、位置とTTime型に直せば
「MinuteSpan関数」や「MinuteBetween関数」などが
使えて簡単になります。
24時を超える場合もあるので注意しましょう。


LupinⅢ  URL  2004-11-26 22:55:47  No: 11945

まず求めた「2:30」を分数に直します。->150分
60分:1.00=150分:X
150/60 = Xということになります

よって求めたいXの式は=A/60となります

Aは経過時間を分数に直したものです


りおりお  2004-11-26 22:57:20  No: 11946

uses
  DateUtils;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Edit3.Text := Format('%.2f',[MinuteSpan(StrToDateTime('12:45'),StrToDateTime('10:00'))/60]);
end;


ちょび  2004-11-26 23:47:54  No: 11947

早いレスありがとうございます!
りおりおさんの方法で無事に計算することが出来ました!
皆さん、ありがとうございました。


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

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






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