Советы по Delphi




Формат даты


У меня есть неотложная задача: в настоящее время я разрабатываю проект, где я должен проверять достоверность введенных дат с применением маски __/__/____, например 12/12/1997.

Некоторое время назад я делал простой шифратор/дешифратор дат, проверяющий достоверность даты. Код приведен ниже.

function CheckDateFormat(SDate:string):string;
var
IDateChar:string;x,y:integer;begin
IDateChar:='.,\/';for y:=1 to length(IDateChar) dobeginx:=pos(IDateChar[y],SDate);while x>0 dobeginDelete(SDate,x,1);Insert('-',SDate,x);x:=pos(IDateChar[y],SDate);end;end;CheckDateFormat:=SDate;end;


function DateEncode(SDate:string):longint;
var
year,month,day:longint;wy,wm,wd:longint;Dummy:TDateTime;Check:integer;begin
DateEncode:=-1;SDate:=CheckDateFormat(SDate);Val(Copy(SDate,1,pos('-',SDate)-1),day,check);Delete(Sdate,1,pos('-',SDate));Val(Copy(SDate,1,pos('-',SDate)-1),month,check);Delete(SDate,1,pos('-',SDate));Val(SDate,year,check);wy:=year;wm:=month;wd:=day;tryDummy:=EncodeDate(wy,wm,wd);exceptyear:=0;month:=0;day:=0;end;DateEncode:=(year*10000)+(month*100)+day;end;
[000011]




Содержание  Назад  Вперед