function CheckDateFormat(SDate: string): string;
var
IDateChar: string;
x, y: integer;
begin
IDateChar := '.,\/';
for y := 1 to length(IDateChar) dobegin
x := pos(IDateChar[y], SDate);
while x > 0 dobegin
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;
Код написан на языке Delphi, который является программным языком и средой разработки (IDE) для создания приложений Windows. Основной цель этих функций - форматировать строку даты в требуемом формате и затем кодировать ее в целочисленное значение.
Вот как они работают:
CheckDateFormat функция: эта функция принимает строку в виде входных данных, представляющую собой дату в любом формате, и возвращает эту дату в формате 'yyyy-mm-dd'. Она заменяет символы, такие как '.', '/', '\' на '-' с помощью цикла, который итерирует над множеством специальных символов и использует функцию pos для поиска первого вхождения каждого символа.
DateEncode функция: эта функция принимает строку в виде входных данных, представляющую собой дату в любом формате, форматирует ее в формат 'yyyy-mm-dd', если это необходимо, и затем конвертирует ее в целочисленное значение, комбинируя значения года, месяца и дня. Если вводная дата является недопустимой, она вернет -1.
Вот пример использования этих функций:
varsDate:string;beginsDate:='30-12-2022';// Входная дата в любом форматеsDate:=CheckDateFormat(sDate);// Форматируем дату в формат 'yyyy-mm-dd'sEncode:=DateEncode(sDate);end.
В этом примере CheckDateFormat будет конвертировать входную дату из '30-12-2022' в '2022-12-30', а затем DateEncode будет конвертировать ее в целочисленное значение.
Статья описывает функции для форматирования и кодировки даты в виде строки, преобразующей дату из любого формата в формат 'день-месяц-года' и кодирующей ее в числовой код.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.