gifts2017

Обучение: Пример сложения времени

Опубликовал GSoft. (GSoft) в раздел Программирование - Практика программирования

Демонстрации алгоритма пересчета времени
Маленький пример показывающий каким образом можно складывать время.
Для простоты при выводе в строковом виде числа и обозначения не переводятся
в строку с учетом склонений.

пример тут http://infostart.ru/projects/2274/
Думаю особо описывать нет необходимости. По сути просто пример перевода в систему с основанием 60

//_____________________________________________________________________________
// глПересчитатьОбщееВремя(ОбщееВремя, ТекВремя)
// Параметры:
// ОбщееВремя - накапливаемое общее время
// ТекВремя - текущее значение которое накапливаем
//
// Описание:
// Производит накопление общего времени
// с учетом системы исчисления времени

Функция глПересчитатьОбщееВремя(ОбщееВремя, ТекВремя, ЧтоВозвращаем = "Строку")
Если
Найти(Строка(ОбщееВремя), " час. ") > 0 Тогда
ОбщееВремя = СтрЗаменить(ОбщееВремя, " час. ", ".");
КонецЕсли;

Если Найти(Строка(ОбщееВремя), " мин.") > 0 Тогда
ОбщееВремя = СтрЗаменить(ОбщееВремя, " мин.", "");
КонецЕсли;

ОбщееВремя = Число(ОбщееВремя);

СуммаЧасовТекЗнач = Цел(ТекВремя);
СуммаМинутТекЗнач = ТекВремя - СуммаЧасовТекЗнач;

СуммаЧасовИтог = Цел(ОбщееВремя);
СуммаМинутИтог = ОбщееВремя - СуммаЧасовИтог;

СуммаМинутВсего = (СуммаМинутТекЗнач + СуммаМинутИтог) * 100;
СуммаЧасовОтСуммыМинут = Цел(СуммаМинутВсего / 60);
СуммаМинутБезСуммыЧасовОтСуммыМинут = СуммаМинутВсего - СуммаЧасовОтСуммыМинут * 60;

ОбщееВремя = (СуммаЧасовИтог + СуммаЧасовТекЗнач + СуммаЧасовОтСуммыМинут) + (СуммаМинутБезСуммыЧасовОтСуммыМинут / 100);

Если ПустоеЗначение(ЧтоВозвращаем) = 1 Тогда
//возвращаем время в цифрах
парамВозврата = ОбщееВремя;
Иначе
//возвращаем время в тексте
Часы = Цел(ОбщееВремя);
Минуты = (ОбщееВремя - Часы) * 100;
парамВозврата = Строка(Часы) + " час. " + Строка(Минуты) + " мин.";
КонецЕсли;

Возврат парамВозврата;
КонецФункции // глПересчитатьОбщееВремя

См. также

Подписаться Добавить вознаграждение
Комментарии
1. as108 (AS108) 22.05.09 01:36
2. Александр (alexluka) 13.06.09 02:45
3. Иваныч Иванов (Иваныч) 08.11.13 16:38
Интересно!!! Мне нравится