Wątek przeniesiony 2014-05-21 21:09 z Delphi i Pascal przez furious programming.

Porównanie zmiennych TDate

0

Mam dwie zmienne typu TDate i przypisane do nich wartości (jedna z komponentu TMonthCalendar druga po prostu data dzisiejsza), przy porównywaniu ich gdy mają przypisaną tą samą datę warunek równości nie jest spełniony :(. Dla zobrazowania problemu zrobiłem konwersję DateTimeToUnix i wyniki dla tych samych dat są różne - jak rozwiązać ten problem ?

 
var
 TempData_1, TempData_2: TDate;
begin
 TempData_1:=MCPlanowanieTransportu.Date; //--> z komponentu TMonthCalendar 
 TempData_2:=Date; 
 ShowMessage(IntToStr(DateTimeToUnix(TempData_1))+#13+IntToStr(DateTimeToUnix(TempData_2)));
end;
2

Ponieważ porównujesz z dokładnością do precyzji zegara.
Tak porównujesz z dokładnością do dnia:

TempData_1:=Trunc(MCPlanowanieTransportu.Date);
TempData_2:=Trunc(Date);
1

Rozwiązaniem problemu jest zapoznanie się z biblioteką standardową Twojego środowiska, oraz o zastosowaniu funkcji SameDate, która porównuje jedynie numer dnia, miesiąca i roku, ignorując składowe czasu;

Pamiętaj także, że odpowiedzi na 90% zadawanych w dziale Newbie pytań, można w kilka minut znaleźć w Google.

1 użytkowników online, w tym zalogowanych: 0, gości: 1