Вывод даты в нужном формате

Previous  Top  Next

    
 

 

 

Code:

function CheckDateFormat(SDate:  string):  string;

var

IDateChar: string;

x, y: integer;

begin

IDateChar := '.,\/';

for y := 1 to length(IDateChar) do

begin

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

   while x > 0 do

   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;

©Drkb::00201

 


 

Формат даты

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

 

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

Code:

function CheckDateFormat(SDate: string): string;

var

IDateChar: string;

x, y: integer;

begin

IDateChar := '.,\/';

for y := 1 to length(IDateChar) do

begin

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

   while x > 0 do

   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;

©Drkb::00753

http://delphiworld.narod.ru/

DelphiWorld 6.0