Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 3 246

/ вопрос открыт /

Приветствую, уважаемые эксперты!
Вопрос может показаться некоторым простым,есть какое-то кол-во секунд например - 1395,как перевести их в формат чч:мм:сс,есть ли стандартная дельфи-функция для этого, так как простое деление и т.п. я и сам знаю.

Anatol_rus Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Anatol_rus (статус: Посетитель)
Вопрос отправлен: 2 октября 2009, 23:49
Состояние вопроса: открыт, ответов: 2.

Ответ #1. Отвечает эксперт: Егор

Здравствуйте, Anatol_rus!
процедура DecodeTime переводит переменную типа дата-время в часы, минуты, секунды, миллисекудны
функция EncodeTime выполняет обратное преобразование

Приложение:
  1. var
  2. h, m, s, ms : Integer;
  3.  
  4.  
  5. ...
  6. h:=0;
  7. m:=0;
  8. s:=1395;
  9. ms:=0;
  10. DecodeTime(EncodeTime(h,m,s,ms),h,m,s,ms);
  11. writeln('h=',h);
  12. writeln('m=',m);
  13. writeln('s=',s);
  14. writeln('ms=',ms);
  15. ...
  16.  
  17.  


Ответ отправил: Егор (статус: 10-ый класс)
Время отправки: 3 октября 2009, 08:48

Ответ #2. Отвечает эксперт: min@y™

А вот типа:

function SecondsToTimeStr(const ASeconds: Cardinal): string;
var
  H, M, S: Word;
begin
  H:= ASeconds div 3600;
  M:= (ASeconds mod 3600) div 60;
  S:= ASeconds mod 60;
  Result:= TimeToStr(EncodeTime(H, M, S, 0));
end;

Код отлаживал, ошибки невозможны.

Ответ отправил: min@y™ (статус: Доктор наук)
Время отправки: 3 октября 2009, 09:04


Мини-форум вопроса

Всего сообщений: 2; последнее сообщение — 4 октября 2009, 10:09; участников в обсуждении: 2.

3 октября 2009, 09:39: Вопрос перемещён из тематического раздела Delphi » Общие вопросы по программированию в раздел Delphi » Алгоритмы, преобразования модератором Ерёмин А.А.

Anatol_rus

Anatol_rus (статус: Посетитель), 3 октября 2009, 12:22 [#1]:

H:= ASeconds div 3600;
M:= (ASeconds mod 3600) div 60;
S:= ASeconds mod 60;
Result:= TimeToStr(EncodeTime(H, M, S, 0));
- а без деления нет системной функции? чтоб сразу подставлять секунды а он выдавал в формате чч:мм:сс?
min@y™

min@y™ (статус: Доктор наук), 4 октября 2009, 10:09 [#2]:

Цитата (Anatol_rus):


а без деления нет системной функции? чтоб сразу подставлять секунды а он выдавал в формате чч:мм:сс?


Системную не знаю. Чем эта не устраивает?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:28
Выполнено за 0.03 сек.