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

Получить время работы Windows

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

Получить время работы Windows

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

function UpTime: string;
 const
   ticksperday: Integer    = 1000 * 60 * 60 * 24;
   ticksperhour: Integer   = 1000 * 60 * 60;
   ticksperminute: Integer = 1000 * 60;
   tickspersecond: Integer = 1000;
 var
   t:          Longword;
   d, h, m, s: Integer;
 begin
   t := GetTickCount;

   d := t div ticksperday;
   Dec(t, d * ticksperday);

   h := t div ticksperhour;
   Dec(t, h * ticksperhour);

   m := t div ticksperminute;
   Dec(t, m * ticksperminute);

   s := t div tickspersecond;

   Result := 'Uptime: ' + IntToStr(d) + ' Days ' + IntToStr(h) + ' Hours ' + IntToStr(m) +
     ' Minutes ' + IntToStr(s) + ' Seconds';
 end;


 procedure TForm1.Button1Click(Sender: TObject);
 begin
   label1.Caption := UpTime;
 end;

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

Данное кодирование написано на языке программирования Delphi, который работает на операционной системе Windows. Это программа вычисляет время работы компьютера и отображает его на форме.

Работает следующим образом:

  • Функция UpTime вычисляет время работы, получая текущее время с помощью GetTickCount (который возвращает количество миллисекунд, прошедших с момента запуска системы), а затем вычитывает из него время запуска.
  • Затем она конвертирует это разницу в дни, часы, минуты и секунды с помощью целочисленного деления (div) и остатка (mod).
  • Результат - строка, отображающая время работы в формате, понятном человеку.

Обработчик события Button1Click вызывается при клике кнопки на форме. Это обработчик событий вызывает функцию UpTime и присваивает ее возвращаемое значение caption-метке (предположительно label1) на форме, эффективно отображая время работы на форме.

Некоторые предложения по улучшению:

  • Обработка ошибок: код не обрабатывает потенциальные ошибки, которые могут возникнуть. Например, если GetTickCount возвращает ошибку или если происходит деление на ноль при вычислении дней, часов, минут и секунд. Хорошо бы добавить блоки try-except для ловли таких исключений.

  • Читаемость кода: хотя код прямолинейный и легко понятен для разработчиков Delphi, он может быть неясен для тех, кто не знаком с языком или его синтаксисом. Всегда полезно писать четкие и краткие комментарии, описывающие, что каждый участок кода делает.

  • Разделение забот: функция UpTime вычисляет время работы и форматирует ее в строку. Однако она также включает в себя логику форматирования. В целом, это хорошая практика разделить вычисление и форматирование в отдельные функции или процедуры для лучшей поддержки и повторного использования.

Вот пример рефакторинга этого кода:

function CalculateUptime: TDateTime;
begin
  Result := Now - EncodeDateTime(Year(Now), Month(Now), Day(1));
end;

function FormatUptime(t: TDateTime): string;
var
  d, h, m, s: integer;
begin
  d := Trunc((t * 24 * 60 * 60) / (1000 * 60 * 60 * 24));
  t := t - Time(d);
  h := Trunc((t * 24 * 60) / (1000 * 60 * 60));
  t := t - Time(h);
  m := Trunc(t * 60 / (1000 * 60));
  t := t - Time(m);
  s := Round((t * 1000) / 1000);

  Result := Format('Uptime: %d Days, %02d Hours, %02d Minutes, %02d Seconds', [d, h, m, s]);
end;

В этом рефакторированном коде:

  • Функция CalculateUptime вычисляет время работы в виде типа TDateTime. Это делает ее более удобной для работы с датами и временем в Delphi.
  • Функция FormatUptime форматирует время работы в строку. Она отделяет вычисление времени от его форматирования для лучшей поддержки и повторного использования.

Статья описывает функцию GetUptime, которая позволяет получать время работы операционной системы Windows, представленное в виде дней, часов, минут и секунд.


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

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




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


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


реклама


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

Время компиляции файла: 2024-12-22 20:14:06
2025-01-29 01:00:37/0.0035290718078613/0