unit UDatumsberechnung;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Buttons;
type
TfrmDatum =
class(TForm)
editDatumEingabe: TEdit;
comboDatumAuswahl: TComboBox;
RadioGroup1: TRadioGroup;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
lbltest: TLabel;
BitBtn1: TBitBtn;
procedure BitBtn1Click(Sender: TObject);
function CheckString(EinleseDatum:
string):TDate;
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
frmDatum: TfrmDatum;
implementation
{$R *.dfm}
var EinleseDatum, test:
string;
Datum : TDateTime;
procedure TfrmDatum.BitBtn1Click(Sender: TObject);
begin
try
// wenns nicht zu except springt, ist alles in ordnung
CheckString(EditDatumEingabe.Text);
lbltest.Caption := DateToStr(Datum);
except
// der string war keine gültige Datumseingabe
editDatumEingabe.Text := '
';
ShowMessage('
Der Eingegebene Wert ist kein Zulässiges Datum! Bitte geben Sie ein gültiges Datum ein');
end;
end;
function TFrmDatum.CheckString(EinleseDatum:
string):TDate;
var
i,i2:integer;
s1,s2:
string;
begin
if (pos('
.',EinleseDatum)>0)
and (pos('
',EinleseDatum)<=0)
then begin
//wenn es 01.01.2005 ist
result:=StrToDate(EinleseDatum);
end;
if (pos('
-',EinleseDatum)>0)
and (pos('
-',EinleseDatum)<=2)
then begin
//wenn es 2005-01-01 ist
i:=pos('
-',EinleseDatum);
s1:=copy(EinleseDatum,1,i-1);
Delete(EinleseDatum,1,i);
i:=pos('
-',EinleseDatum);
s2:=copy(EinleseDatum,1,i-1);
Delete(EinleseDatum,1,i);
result:=StrToDate(EinleseDatum + '
.' + s2 + '
.' + s1);
end;
if (pos('
.',EinleseDatum)>0)
and (pos('
',EinleseDatum)>0)
then begin
//wenn es 1. Januar 2005 ist
i:=pos('
',EinleseDatum);
s1:=Copy(EinleseDatum,1,i-2);
Delete(EinleseDatum,1,i);
i:=pos('
',EinleseDatum);
s2:=Copy(EinleseDatum,1,i-1);
Delete(EinleseDatum,1,i);
if LowerCase(s2)='
januar'
then s2:='
1';
if LowerCase(s2)='
februar'
then s2:='
2';
//...
if LowerCase(s2)='
dezember'
then s2:='
12';
result:=StrToDate(s1 + '
.' + s2 + '
.' + EinleseDatum);
end;
end;
end.