У меня есть неотложная задача: в настоящее время я разрабатываю проект, где я должен проверять достоверность введенных дат с применением маски __/__/____, например 12/12/2007.
Некоторое время назад я делал простой шифратор/дешифратор дат, проверяющий достоверность даты.
Код приведен ниже.
Код function Check
Date Format(S
Date :string):string;
var
I
Date Char:string;
x,y:integer;
begin
I
Date Char:='.,/';
for y:=1 to length(I
Date Char) do
begin
x:=pos(I
Date Char[y],S
Date );
while x>0 do
begin
Delete(S
Date ,x,1);
('-',S
Date ,x);
x:=pos(I
Date Char[y],S
Date );
end;
end;
Check
Date Format:=S
Date ;
end;
function
Date Encode(S
Date :string):longint;
var
year,month,day:longint;
wy,wm,wd:longint;
Dummy:T
Date Time;
Check:integer;
begin
Date Encode:=-1;
S
Date :=Check
Date Format(S
Date );
Val(Copy(S
Date ,1,pos('-',S
Date )-1),day,check);
Delete(S
date ,1,pos('-',S
Date ));
Val(Copy(S
Date ,1,pos('-',S
Date )-1),month,check);
Delete(S
Date ,1,pos('-',S
Date ));
Val(S
Date ,year,check);
wy:=year;
wm:=month;
wd:=day;
try
Dummy:=Encode
Date (wy,wm,wd);
except
year:=0;
month:=0;
day:=0;
end;
Date Encode:=(year
000)+(month
0)+day;
end;
Примечание: смайлик - знак умножения
Разместил: admin | | Прочитано: 37480 | |