Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Функции работы со временем
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 7.7
vadim007
Нет ли у кого готового набора функция для работы со временем, типа ДобавитьВремя(..), РазностьВремени(..) и т.д.?
vadim007
Вот нашел подходящую:
Функция ИзмВремя(ЧЧ,ММ,СС, Знач Ч, Знач М, Знач С)
    СС=СС+С;
    ММ=ММ+М+Цел(СС/60);
    ЧЧ=ЧЧ+Ч+Цел(ММ/60);
    СС=СС%60;
    ММ=ММ%60;
    ДД=Цел(ЧЧ/24); ЧЧ=ЧЧ%24;
    Возврат ДД;
КонецФункции
Kaliban
Время - строка вида ЧЧ:ММ:СС

//------------------------------------------------------------ 
Функция разницаВрем(Время1,Время2) Экспорт
    рез=0;                                                                        
    //         секунды                    минуты                часы
    Время1Сек=Число(Прав(Время1,2))+Число(Сред(Время1,4,2))*60+Число(Лев(Время1,2))*60*60;
    Время2Сек=Число(Прав(Время2,2))+Число(Сред(Время2,4,2))*60+Число(Лев(Время2,2))*60*60;
    
    разнСек= Время1Сек- Время2Сек;
    
    часов=Цел(разнСек/(60*60) );
    минут=Цел( (разнСек-часов*60*60 )/60 );
    сек=разнСек-часов*60*60-минут*60;
    рез=Строка(Формат(часов,"Ч(0)2"))+":"+Строка(Формат(минут,"Ч(0)2"))+":"+Строка(Формат(сек,"Ч(0)2"));
    Возврат рез;
    
КонецФункции
//------------------------------------------------------------
Функция ВремяВСекунды(время1) Экспорт
    Время1Сек=0;                                                                        
    //         секунды                    минуты                часы
    Время1Сек=Число(Прав(Время1,2))+Число(Сред(Время1,4,2))*60+Число(Лев(Время1,2))*60*60;
    Возврат Время1Сек;    
КонецФункции                                                  

//------------------------------------------------------------
Функция СекундыВоВремя(Секунды) Экспорт  
    рез=0;
    часов=Цел(Секунды/(60*60) );
    минут=Цел( (Секунды-часов*60*60 )/60 );
    сек=Секунды-часов*60*60-минут*60;
    рез=Строка(Формат(часов,"Ч(0)2"))+":"+Строка(Формат(минут,"Ч(0)2"))+":"+Строка(Формат(сек,"Ч(0)2"));
    Возврат рез;
КонецФункции
//------------------------------------------------------------
Функция СуммаВрем(Время1,Время2) Экспорт
    рез=0;                                                                        
    //         секунды                    минуты                часы
    Время1Сек=Число(Прав(Время1,2))+Число(Сред(Время1,4,2))*60+Число(Лев(Время1,2))*60*60;
    Время2Сек=Число(Прав(Время2,2))+Число(Сред(Время2,4,2))*60+Число(Лев(Время2,2))*60*60;
    
    суммаСек= Время1Сек + Время2Сек;
    
    часов=Цел(суммаСек/(60*60) );
    минут=Цел( (суммаСек-часов*60*60 )/60 );
    сек=суммаСек-часов*60*60-минут*60;
    рез=Строка(Формат(часов,"Ч(0)2"))+":"+Строка(Формат(минут,"Ч(0)2"))+":"+Строка(Формат(сек,"Ч(0)2"));
    Возврат рез;
    
КонецФункции
//------------------------------------------------------------
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.