Иногда возникают задачи, требующие перевода интервала, представленного в секундах, в пригодном для восприятия виде. Стандартных функций для этого нет, поэтому придется экспериментировать самим. Давайте представим, что у нас есть переменная, содержащая наш интервал:
КоличествоСекунд = 7210;
Все мы знаем, что в одном часе 3600 секунд (60 минут по 60 секунд), поэтому, если мы разделим наш интервал на 3600, то получим в целой части количество часов, а в остатке количество секунд, которые могут быть и минутами, и секундами:
//получаем часы Часы = Цел(КоличествоСекунд / 3600); //считаем остаток ОстатокСекунд = КоличествоСекунд - Часы * 3600; //или ОстатокСекунд = КоличествоСекунд % 3600;
В идеале нам нужны только два оператора:
- оператор деления
/
- оператор остатка от деления
%
Теперь нам нужно аналогичным образом получить количество минут:
//получаем минуты Минуты = Цел(ОстатокСекунд / 60);//в минуте 60 сек
Ну, а остаток — это наши секунды:
Секунды = ОстатокСекунд % 60;
Давайте посмотрим, что мы получили:
Сообщить("" + Часы + " часов, " + Минуты + " минут, " + Секунды + " секунд"); //Результат: // 2 часов, 0 минут, 10 секунд
Если собрать все воедино, наша функция будет выглядеть так:
Функция ПериодЧасыМинутыСекунды(Знач КоличествоСекунд) Перем Часы, Минуты, Секунды; //получаем часы Часы = Цел(КоличествоСекунд / 3600); //считаем остаток КоличествоСекунд = КоличествоСекунд % 3600; //получаем минуты Минуты = Цел(КоличествоСекунд / 60);//в минуте 60 сек //остались секунды Секунды = КоличествоСекунд % 60; Возврат ("" + Часы + " часов, " + Минуты + " минут, " + Секунды + " секунд"); КонецФункции
Попробуйте самостоятельно доработать ее так, чтобы она считала еще и количество дней)