DateTimePickerで選択された日付(DateTimePicker.Date)と
DBから抽出した日付(Query1.FieldByNAme('Date'))を比較して何日の差が
あるかを出すにはどうすればいいのでしょうか?
※必ずDateTimePickerの方が大きくなります。
※DBにはDate型で「2008/01/01」の形で登録されています。
DateUtils.pas の DaysBetween関数を使用して下さい。
var
D1,D2: TDateTime;
I: Integer;
begin
D1 := StrToDate('2007/11/10');
D2 := StrToDate('2008/07/16');
I := DaysBetween(D1,D2);
end;
TDateはControlsの中でTDate = type TDateTimeと宣言されているので
TDateTimePicker.Dateといえども時間を保持しています。
var
FromDate, ToDate: TDate;
I: integer;
begin
FromDate := EncodeDate(2008,2,28) + EncodeTime(12,0,0,0);
ToDate := EncodeDate(2008,2,29) + EncodeTime(11,59,59,0);
I := DaysBetween(FromDate, ToDate);
end;
とするとI=0になります。
時間に関係なく日々計算するには
FromDate := DateOf(FromDate);
ToDate := DateOf(ToDate);
で時間を削除してください。
解決しました
ありがとうございます
ツイート | ![]() |