Thema: Delphi Dienstzeitende Rechner

Einzelnen Beitrag anzeigen

Benutzerbild von Ajintaro
Ajintaro

Registriert seit: 20. Okt 2004
Ort: Sankt Augustin
138 Beiträge
 
Delphi XE6 Starter
 
#4

Re: Dienstzeitende Rechner

  Alt 4. Aug 2005, 09:04
Hallo!

Danke für die Tips. Ich habe mich zuerst mal mit den DateUtils befasst - das Erbegnis ist eine sehr schwammige Milchmädchenrechnung:

Delphi-Quellcode:
procedure TForm1.sp_rechneClick(Sender: TObject);
var
    Jahre_gedient,
    Monate_gesamt, Monate_effektiv,
    Tage_gesamt, Tage_effektiv: integer;

begin

//Überprüfung Felder
If (e_eintritt.Text='') OR (e_dze.Text='') then
begin
 ShowMessage('Bitte das Eintrittsdatum und DZE ausfüllen');
 exit;
end
else

//ab hier ist die validierung okay
 begin

   //Speicherung der Daten in Variablen
   diensteintritt:=StrToDate(e_eintritt.Text);
   dze:=StrToDate(e_dze.Text);
   heute:=now;

   //Eigentliche Berechnung
   //--> hier: die vergangenen Jahre von Eintritt bis heute
   Jahre_gedient:= YearsBetween(diensteintritt, heute);

    //--> hier: die gedienten Monate abzüglich der Jahre
    Monate_gesamt := MonthsBetween(diensteintritt, heute);
    Monate_effektiv:= (Monate_gesamt) - (Jahre_gedient*12);

   //--> hier: die vergangenen Tage (ohne Schaltjahr!)
   Tage_gesamt := DaysBetween(diensteintritt, heute);
   Tage_effektiv:= ((Tage_gesamt) - (Jahre_gedient*365)) - (Monate_effektiv*30);

  l_2eintritt.Caption:='Du hast seit deinem Dienstantritt am '+ e_eintritt.Text;
  l_jahre.Caption:=IntToStr(Jahre_gedient)+' Jahr(e), '+ IntToStr(Monate_effektiv)+' Monate';
  l_zeit.Caption:=IntToStr(Tage_effektiv)+ ' Tage,';

 end;
end;//END IF
Die Anzahl der Jahre und Monate sind exakt, nur ab den Tagen wirds schwierig denn ich muss noch irgendwie die Schaltjahre mit berücksichten o.O Evt. sollte ich mir mal den Code von dahead näher anschauen.
*grübel*
Jaimy
DAoC 2.0 -> Camelot Unchained !
  Mit Zitat antworten Zitat