Некоторое время назад я делал простой шифратор/дешифратор дат, проверяющий достоверность даты. Код приведен ниже.
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; |