VBのDateDiffみたいな関数

解決


たかみちえ  URL  2002-05-15 10:00:35  No: 877

VB掲示板からきました、たかみちえといいます。

  えと、うえのとおりなんですけど、VBで言うDateDiffのような、
日付と日付のあいだを計算する関数はないんでしょうか?
(2002/5/14のはいったTDateTimeと2002/5/2のはいったTDateTimeを計算すると、12と出てくるような…)
もしないのなら、計算方法をおしえてくださると、たすかります。

  とりあえずヘルプのあやしい部分は読んだつもりなんですけど、見つからなかったので…。
見落としただけかもしれませんけど…。

  Winodows98+Delphi6Personalです。


にしの  2002-05-15 18:21:41  No: 878

Delphi6のTDateTimeが、Delphi5と変わっていたら次の説明は違います。ご了承ください。

TDateTime型の実体はdouble型です。
整数部分がTDateを、小数部分がTTimeを現しています。
TDateTimeの値が、0.5なら、それは12:00:00を表します。

日数が知りたい場合は、単純な引き算で出来ます。

d1 := EncodeDate(2002, 5, 14);
d2 := EncodeDate(2002, 5, 2);
Edit1.Text := Format('%f', [d1 - d2]);
とすれば、Edit1には12と表示されるはずです。


鷹羽 あずさ  2002-05-15 23:44:05  No: 879

同じようなお答えになってしまいますが、こんなのもどうでしょうか?

dtA := StrToDateTime('2002/5/14');
dtB := StrToDateTime('2002/5/2');

Label1.Caption := FloatToStr(dtA - dtB);

というように、型変換関数のみで解答が出せます。


たかみちえ  URL  2002-05-16 05:29:19  No: 880

なるほど、TDateTimeはそんな仕組みだったんですかぁ、
ありがとうございました。解決ですっ


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








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