Code:

function CheckDateFormat(SDate: string): string;

var

IDateChar: string;

x, y: integer;

begin

IDateChar := '.,\/';

for y := 1to length(IDateChar) do

begin

x := pos(IDateChar[y], SDate);

while x > 0do

begin

Delete(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;

try

Dummy := EncodeDate(wy, wm, wd);

except

year := 0;

month := 0;

day := 0;

end;

DateEncode := (year * 10000) + (month * 100) + day;

end;

 

 


 

Формат даты

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

 

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

Code:

function CheckDateFormat(SDate: string): string;

var

IDateChar: string;

x, y: integer;

begin

IDateChar := '.,\/';

for y := 1to length(IDateChar) do

begin

x := pos(IDateChar[y], SDate);

while x > 0do

begin

Delete(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;

try

Dummy := EncodeDate(wy, wm, wd);

except

year := 0;

month := 0;

day := 0;

end;

DateEncode := (year * 10000) + (month * 100) + day;

end;

 

https://delphiworld.narod

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить