Obliczanie wieku bazy

0

Mam taki kod obliczający ile dni ma baza pobrana do własnego programu. Tak jak w programach antywirusowych.

{ Podliczenie na podstawie daty bazy - jej wieku}
function DzienRoku: Extended;
var
D1,D2:TDateTime;
begin
D1:=StrToDate(SearchForm.Sygnatura_Data.Caption);
D2:=StrToDate(FormatDateTime('yyyy-mm-dd', Now));
result:=(D2-D1);
end;

// SearchForm.Sygnatura_Data.Caption jest równy 2005-03-02



//FormCreate
{...}

try
     begin
        if DzienRoku = 0 then RoznicaDat.Caption :=  '>> Aktualna:             pobrana dzisiaj'
      else
        if DzienRoku = 1 then RoznicaDat.Caption :=  '>> Aktualna:             pobrana wczoraj'
      else
        if ((DzienRoku > 1) and (DzienRoku < 31)) then RoznicaDat.Caption :=  '>> Aktualna:             pobrana ' + FloatToStr(DzienRoku) + ' dni temu'
      else
        if DzienRoku > 30 then RoznicaDat.Caption :=  '>> Nie aktualna !:      pobrana ' + FloatToStr(DzienRoku) + ' dni temu';

        // informacja dla użytkownika jeśli bazy mają więcej niż zadeklarował użytkownik
        if ((CheckBoxUpdate.Checked = True) and (DzienRoku >= strtoint(EditWiekBazy.Text))) then
             begin
               SearchForm.PageControl1.TabIndex := 6;
               ShowMessage('Wykorzystywane sygnatury opublikowano ' + FloatToStr(DzienRoku) + ' dni temu !' +#10+
                           'Zostanie teraz sprawdzone, czy jest nowsza baza, ponieważ wymaga ona aktualizacji.');
               Application.ProcessMessages;
               {...}
             end;
     end;
  except
   // błąd pobrania daty
  end;
{...}

Wszystko działa dobrze w XP. Ale w 98 lub Me występuje taki błąd:

2005-03-02 is not a valid date.

O co w tym chodzi ? Gdzie jest błąd ? Czy systemy 9x pobierają inaczej date od XP. Pomocy !

0

Problem będzie pewnie tkwił z którejś z tych linijek:

D1:=StrToDate(SearchForm.Sygnatura_Data.Caption);
D2:=StrToDate(FormatDateTime('yyyy-mm-dd', Now));

(zapewne wywoływany jest wyjątek). Sprawdź, dla jakich formatów XP nie generuje błędu i czy w 9x też tak jest.

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