В структурах TSessionInfo502 и TSessionInfo50 есть поля, которые позволяют определить время. Время указано в виде большого целого числа (Cardinal), показывающего количество секунд.

Для преобразования этого числа в привычный формат времени я написал функцию TimeToStr (листинг 5.22) Листинг 5.22. Преобразование числового времени в строку

function TimeToStrCValue: DWORD): String;
var
d. h. m. s: Integer;
begin
d := 0; h := 0; m := 0; s := Value;

//////////////////////////////////// // Разбивка числа на составляющие // ////////////////////////////////////

Листинг 5.22 (продолжение) II Секунды if s > 59 then begin m := s div 60:

s := s mod 60;
end:

// Минуты if m > 59 then begin h •= m div 60:

m .= m mod 60:
end:

// Часы

if h > 23 then
begin
d := h div 24:
h := h div 24;
end:
Result := ";
////////////////////////////////////

// Форматирование строки //

////////////////////////////////////

// Дни

if (d>0) then Result := Result+IntToStr(d)+' дней.

// Часы

if (h<10) then
Result := Result+'O'+IntToStrdiH':1 else
Result := Result+IntToStr(h)+'.';

// Минуты

if (m<10) then
Result := Result+'0,+IntToStг(m)+,.1 else
Result := Result+IntToStr(m)+':';
// Секунды if (s<10) then
Result := Result+'0'+IntToStr(s) else
Result := Result+IntToStr(s);
end:

Допустим, что функция переводит количество секунд, прошедших с момента подключения. Представим, что клиент был подключен в течение 460 секунд. Сначала процедура разделит 460 на 60 секунд с помощью операции di v (деление без остатка, то есть мы получим только целую часть) для определения количества минут. В данном случае результатом будет 7 минут. Потом определяем остаток от деления операцией mod, и он равен 40 секундам. Получается, что 460 секунд - это 7 минут и 40 секунд.

На следующем этапе, если бы количество минут превысило 59, стало бы возможным выделить часы.

Вот таким простым способом я перевожу время в секундах в привычный для нас вид и формирую соответствующую строку.

5.9.1. Просмотр подключений || Оглавление || 5.9.3. Закрытие сессий


Delphi в шутку и всерьез: что умеют хакеры



Новости за месяц

  • Декабрь
    2021
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31