Einzelnen Beitrag anzeigen

ThaiSon96

Registriert seit: 7. Mai 2013
11 Beiträge
 
Delphi 7 Personal
 
#25

AW: Datumsdifferenz berechnen?

  Alt 22. Jan 2014, 19:04
Habe das Programm inzwischen geschafft

Delphi-Quellcode:
program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;

type
  tMonat = array [1..12] of integer;
  tDatum = record
    Tag: 1..31;
    Monat: 1..12;
    Jahr: 2014..maxint;
  end; // of record

var
  heute, ferien: tDatum;
  monate : tmonat = (31,29,31,30,31,30,31,31,30,31,30,31);
  tage: integer;

function tagebisferien (datumheute, datumferienbeginn: tDatum): integer;
var
  verbleibendetage: integer;
begin
  verbleibendetage := 0;
  if datumheute.monat <> datumferienbeginn.Monat then
  begin
    verbleibendetage := verbleibendetage + (monate[datumheute.monat] - datumheute.Tag);
    datumheute.monat :=datumheute.monat +1;
    while (datumheute.Monat <> datumferienbeginn.monat) do
    begin
      verbleibendetage := verbleibendetage + (monate[datumheute.Monat]);
      datumheute.monat := datumheute.monat +1;
    end;
    verbleibendetage := verbleibendetage + datumferienbeginn.tag;
  end
  else verbleibendetage := datumferienbeginn.tag - datumheute.tag;
  result := verbleibendetage;
end;




begin
  writeln('[= Heutiges Datum =]');
  write('Tag: '); readln(heute.Tag);
  write('Monat: '); readln(heute.Monat);
  write('Jahr: '); readln(heute.Jahr);

  writeln('[= Feriendatum =]');
  write('Tag: '); readln(ferien.Tag);
  write('Monat: '); readln(ferien.Monat);
  write('Jahr: '); readln(ferien.Jahr);

  if (heute.Tag > ferien.Tag) AND (heute.Monat > ferien.Monat) AND (heute.Jahr = ferien.Jahr) then
    writeln('Ungueltige Angaben!')
  else
  begin
    tage := tagebisferien(heute, ferien);
    writeln('Es ist/sind noch ',abs(tage),' Tag/Tage bis zu den naechsten Ferien');
  end;

  readln;
end.
  Mit Zitat antworten Zitat