Имя: Пароль:
1C
1С v8
1С 8.1 Округление Даты и Времени
0 vl_programmer
 
10.01.14
15:47
Всем привет может есть у кого функция округление даты и времени?
пример того что хочется получить:

Пример 1

дата = 01.02.2013 20:49:99;
ОркуглятьДо = 30; //30 Минут

Округлитьвремя(дата, ОркуглятьДо );

на выходе
01.02.2013 21:00:00;

Пример 2
дата = 01.02.2013 20:16:99;
ОркуглятьДо = 30; //30 Минут

Округлитьвремя(дата, ОркуглятьДо );

на выходе
01.02.2013 20:30:00;
1 kvikster
 
10.01.14
17:16
Функция Округлитьвремя(ТекДата,Шаг)
    Если Шаг = 0 Тогда
        Шаг = 60
    Иначе         
    КонецЕсли;
    
    Разница = ТекДата-НачалоЧаса(ТекДата);
    
    Пока  Разница >= Шаг*60 Цикл
        Разница = Разница - Шаг*60
    КонецЦикла;
    
    Если Разница/Шаг>=0.5 Тогда
        НоваяДата = ТекДата + шаг*60-Разница;        
    Иначе
        НоваяДата = ТекДата - Разница;
    КонецЕсли;
        
        
    Возврат НоваяДата     
КонецФункции

Правильность сам проверь
2 vl_programmer
 
10.01.14
17:18
(1) Спасибо!
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн