//_____________________________________________________________________________
// глПересчитатьОбщееВремя(ОбщееВремя, ТекВремя)
// Параметры:
// ОбщееВремя - накапливаемое общее время
// ТекВремя - текущее значение которое накапливаем
//
// Описание:
// Производит накопление общего времени
// с учетом системы исчисления времени
Функция глПересчитатьОбщееВремя(ОбщееВремя, ТекВремя, ЧтоВозвращаем = "Строку")
Если Найти(Строка(ОбщееВремя), " час. ") > 0 Тогда
ОбщееВремя = СтрЗаменить(ОбщееВремя, " час. ", ".");
КонецЕсли;
Если Найти(Строка(ОбщееВремя), " мин.") > 0 Тогда
ОбщееВремя = СтрЗаменить(ОбщееВремя, " мин.", "");
КонецЕсли;
ОбщееВремя = Число(ОбщееВремя);
СуммаЧасовТекЗнач = Цел(ТекВремя);
СуммаМинутТекЗнач = ТекВремя - СуммаЧасовТекЗнач;
СуммаЧасовИтог = Цел(ОбщееВремя);
СуммаМинутИтог = ОбщееВремя - СуммаЧасовИтог;
СуммаМинутВсего = (СуммаМинутТекЗнач + СуммаМинутИтог) * 100;
СуммаЧасовОтСуммыМинут = Цел(СуммаМинутВсего / 60);
СуммаМинутБезСуммыЧасовОтСуммыМинут = СуммаМинутВсего - СуммаЧасовОтСуммыМинут * 60;
ОбщееВремя = (СуммаЧасовИтог + СуммаЧасовТекЗнач + СуммаЧасовОтСуммыМинут) + (СуммаМинутБезСуммыЧасовОтСуммыМинут / 100);
Если ПустоеЗначение(ЧтоВозвращаем) = 1 Тогда
//возвращаем время в цифрах
парамВозврата = ОбщееВремя;
Иначе
//возвращаем время в тексте
Часы = Цел(ОбщееВремя);
Минуты = (ОбщееВремя - Часы) * 100;
парамВозврата = Строка(Часы) + " час. " + Строка(Минуты) + " мин.";
КонецЕсли;
Возврат парамВозврата;
КонецФункции // глПересчитатьОбщееВремя
Обучение: Пример сложения времени
30.12.14
Разработка - Математика и алгоритмы
Демонстрации алгоритма пересчета времени
Маленький пример показывающий каким образом можно складывать время.
Для простоты при выводе в строковом виде числа и обозначения не переводятся
в строку с учетом склонений.
пример тут http://infostart.ru/projects/2274/
Маленький пример показывающий каким образом можно складывать время.
Для простоты при выводе в строковом виде числа и обозначения не переводятся
в строку с учетом склонений.
пример тут http://infostart.ru/projects/2274/
Думаю особо описывать нет необходимости. По сути просто пример перевода в систему с основанием 60