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

Использовать TTime для более 24 часов

Delphi , Синтаксис , Дата и Время

Использовать TTime для более 24 часов

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

function TextToTime(S: string): Integer;
 var
   p, i: Integer;
   Sh, Sm, Ss: string;
 begin
   Sh := '';
   SM := '';
   SS := '';
   i  := 1;
   p  := 0;
   while i do
   begin
     if (s[i] <> ':') then
     begin
       case P of
         0: SH := Sh + s[i];
         1: SM := SM + S[i];
         2: SS := SS + S[i];
       end;
     end
     else
       Inc(p);
     Inc(i);
   end;
   try
     Result := (StrToInt(SH) * 3600) + (StrToInt(SM) * 60) + (StrToInt(SS))
     except
       Result := 0;
   end;
 end;

 function TimeToText(T: Integer): string;
 var
   H, M, S: string;
   ZH, ZM, ZS: Integer;
 begin
   ZH := T div 3600;
   ZM := T div 60 - ZH * 60;
   ZS := T - (ZH * 3600 + ZM * 60);
   if ZH then H := '0' + IntToStr(ZH)
   else
     H := IntToStr(ZH);
   if ZM then M := '0' + IntToStr(ZM)
   else
     M := IntToStr(ZM);
   if ZS then S := '0' + IntToStr(ZS)
   else
     S := IntToStr(ZS);
   Result := H + ':' + M + ':' + S;
 end;

Привет! Я переведу текст на русский язык.

Код - пара функций в Delphi/Pascal, одна конвертирует текст в время (TextToTime), а другая - время в текст (TimeToText). Вот краткое описание, что каждая функция делает:

TextToTime

  • Принимает строковый ввод, представляющий время в формате "HH:MM:SS" (часы, минуты, секунды)
  • Парсит входную строку на три части: часы, минуты и секунды
  • Конвертирует эти части в целые числа с помощью StrToInt
  • Вычисляет общее количество секунд, умножая часы на 3600, минуты на 60 и добавляя секунды
  • Возвращает это общее количество секунд как целое число

TimeToText

  • Принимает целочисленный ввод, представляющий время в секундах
  • Разделяет входное время на три части: часы, минуты и секунды
  • Конвертирует эти части в строки с помощью IntToStr
  • Форматирует выходную строку, конкатенируя часы, минуты и секунды с двоеточием (:) между ними
  • Возвращает эту форматированную строку как результат

Обратите внимание на следующие заметки о коде:

  1. Функция TextToTime использует блок try-except для обработки любых потенциальных ошибок при конвертации входной строки в целые числа с помощью StrToInt. Если возникает ошибка, она устанавливает результат в 0.
  2. Обе функции используют простые арифметические и операции манипуляции строками, которые straightforward но могут не быть эффективными для очень больших вводов или сложных требований форматирования.

Вам может потребоваться изменить функцию TextToTime, чтобы она могла парсить даты в формате "YYYY-MM-DD HH:MM:SS" вместо только времени. Это позволит вам представлять даты более 24 часов. Однако это также потребует изменения функции TimeToText для вывода дат в этом формате.

Вот обновленная версия функции TextToTime, которая может парсить даты:

function TextToDateTime(S: string): TDateTime;
var
  p, i: Integer;
  Y, M, D, H, Mi, Ss: string;
begin
  Y := '';
  M := '';
  D := '';
  H := '';
  Mi := '';
  Ss := '';
  i := 1;
  p := 0;
  while i do
  begin
    if (S[i] <> '-') then
    begin
      case P of
        0: Y := Y + S[i];
        1: M := M + S[i];
        2: D := D + S[i];
        3: H := H + S[i];
        4: Mi := Mi + S[i];
        5: Ss := Ss + S[i];
      end;
    end
    else
      Inc(p);
    Inc(i);
  end;
  try
    Result := StrToDate(Y + '-' + M + '-' + D) + StrToInt(H) * 3600 + StrToInt(Mi) * 60 + StrToInt(Ss)
    except
      Result := 0;
  end;
end;

Обратите внимание, что эта обновленная функция предполагает, что входная строка даты имеет формат "YYYY-MM-DD HH:MM:SS". Вам может потребоваться изменить логику парсинга, если ваш желаемый формат дат отличается.

В статье описывается функция TTime для преобразования времени в формате текста в интервал более 24 часов, используя язык Delphi.


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

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




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


:: Главная :: Дата и Время ::


реклама


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

Время компиляции файла: 2024-08-19 13:29:56
2024-11-21 13:22:38/0.0058679580688477/1