Thema: Delphi Datum / Zeit Vergleichen

Einzelnen Beitrag anzeigen

exploitbashor

Registriert seit: 1. Nov 2006
4 Beiträge
 
#6

Re: Datum / Zeit Vergleichen

  Alt 1. Nov 2006, 15:28
Ich habe ein ähnliches Problem was ich einfach nicht in den Griff bekomme, würde mich freuen wenn jemand Rat weiß. Ich will einen Parkautomaten nachbauen, der bei bestimmtem geldeinwurf eine spezielle zeit auf die aktuelle draufrechnet. ich glaube der vergleich funktioniert nicht, denn der teil wo zeiten nicht verglichen werden sollen funktioniert, der andere aber nicht.


Delphi-Quellcode:
function TZeit.endzeit : string;
var differenz, endtime : TDateTime;
    ende, frueh, spaet : string [8];
begin
frueh := '09:00:00';
spaet := '19:00:00';
if geld > 0 then
begin
 {Falls aktuelle Zeit vor 9 und nach 19 Uhr ist soll bei verschiedenen Geldwerten die jeweilige Zeit auf 9 Uhr draufgerechnet werden}
 if ((now < strtotime(frueh)) and (now > strtotime(spaet))) then
  begin
  if geld = 0.5 then ende := timetostr(strtotime(frueh)+strtotime('00:30:00'));
  if geld = 1 then ende := timetostr(strtotime(frueh)+strtotime('01:00:00'));
  if geld = 1.5 then ende := timetostr(strtotime(frueh)+strtotime('01:30:00'));
  if geld = 2 then ende := timetostr(strtotime(frueh)+strtotime('02:00:00'));
  end
 else
 {Falls die aktuelle Zeit zwischen 9 und 19 uhr liegt soll einfach die entsprechende Zeit draufgerechnet werden   --nur dieser teil funktioniert--  }
  begin
  if geld = 0.5 then ende := timetostr(now+strtotime('00:30:00'));
  if geld = 1 then ende := timetostr(now+strtotime('01:00:00'));
  if geld = 1.5 then ende := timetostr(now+strtotime('01:30:00'));
  if geld = 2 then ende := timetostr(now+strtotime('02:00:00'));
  end;
 {Falls nun die bezahlte zeit über 19 uhr liegt soll der rest der bezahlten zeit auf 9 uhr des folgetages draufgerechnet werden (datum unwichtig, nur uhrzeit)}
 if (strtotime(ende) > strtotime('19:00:00')) then
  begin
  differenz := strtotime(ende) - now;
  endtime := strtotime(frueh) + differenz;
  ende := timetostr(endtime);
  end;
endzeit := ende;
end;
end;
danke schonmal, exploitbashor
  Mit Zitat antworten Zitat