Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Проверить, является строка датой или временем

Delphi , Синтаксис , Типы и Переменные

Проверить, является строка датой или временем

Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch

{ 
  Das akzeptierte Format von StrToDate und StrToTime wird in den globalen Variablen 
  DateSeparator und ShortDateFormat definiert. 

  The accepted format of StrToDate and StrToTime is defined in the global 
  variables DateSeparator and ShortDateFormat 
}

 function IsDate(str: string): Boolean;
 var
   dt: TDateTime;
 begin
   Result := True;
   try
     dt := StrToDate(str);
   except
     Result := False;
   end;
 end;

 function IsTime(str: string): Boolean;
 var
   dt: TDateTime;
 begin
   Result := True;
   try
     dt := StrToTime(str);
   except
     Result := False;
   end;
 end;

 procedure TForm1.Button1Click(Sender: TObject);
 begin
   if IsDate('24.07.2001') then
   begin
     ShowMessage('Yes, it is a date.');
   end;

   if IsTime('16:23') then
   begin
     ShowMessage('Yes, it is a time.');
   end;
 end;

Перевод контента на русский язык:

Программный код, написанный на Delphi, предназначен для проверки, является ли заданная строка датой или временем. Функция IsDate пытается преобразовать входную строку в объект TDateTime, используя функцию StrToDate, а функция IsTime - функцию StrToTime. Если преобразование не удается (т.е. возникает исключение), соответствующая функция возвращает False.

Обзор кода:

  1. Глобальные переменные DateSeparator и ShortDateFormat определяют принятый формат для строк дат и времени.
  2. Функция IsDate принимает строку как входной параметр и пытается преобразовать ее в объект TDateTime, используя функцию StrToDate. Если преобразование не удается, возникает исключение, и функция возвращает False.
  3. Функция IsTime behaves similarly, but uses StrToTime instead of StrToDate.
  4. В процедуре Button1Click программа проверяет, являются ли два входных строка ('24.07.2001' и '16:23') датами или временем, используя соответствующие функции. Если они есть, отображается сообщение об ошибке.

Альтернативное решение:

Вместо использования блоков try-except для обработки потенциальных ошибок преобразования можно использовать функции TryStrToDate и TryStrToTime, которые возвращают булевое значение, указывающее, успешно ли было выполнено преобразование:

function IsDate(str: string): Boolean;
begin
  Result := TryStrToDate(str);
end;

function IsTime(str: string): Boolean;
begin
  Result := TryStrToTime(str);
end;

Эта APPROACH более компактна и эффективна, так как она avoids the overhead of exception handling. Однако, она все еще требует определения глобальных переменных DateSeparator и ShortDateFormat.

Данная статья описывает функции для проверки строки на соответствие формату даты или времени в Delphi.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Типы и Переменные ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-05-01 12:42:43/0.0029919147491455/0