1. 1C / Говнокод #22823

    −10

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    Функция РазностьДатВДнях(Дата1, Дата2, ВключаяГраницы = Истина)
    	
    	Результат = ?(ВключаяГраницы, 1, 0);
    	Если Дата1 < Дата2 Тогда
    		ТекущаяДата = НачалоДня(Дата1);
    		ДатаОкончания = НачалоДня(Дата2);
    	Иначе
    		ТекущаяДата = НачалоДня(Дата2);
    		ДатаОкончания = НачалоДня(Дата1);
    	КонецЕсли;
    	Пока ТекущаяДата < ДатаОкончания Цикл
    		ТекущаяДата = НачалоДня(ТекущаяДата + 24 * 60 * 60);
    		Результат = Результат + 1;
    	КонецЦикла;
    	Возврат Результат;
    
    КонецФункции

    можно тремя строками заменить:
    ДатаНачала = Мин(НачалоДня(Дата1), НачалоДня(Дата2));
    ДатаОкончания = Макс(НачалоДня(Дата1), НачалоДня(Дата2));
    Возврат ?(ВключаяГраницы, 1, 0) + (ДатаОкончания - ДатаНачала) / 86400

    Запостил: noncode, 17 Апреля 2017

    Комментарии (1) RSS

    • Возврат (Дата1 - Дата2) / 86400;
      или чтоб исключить минус:
      Возврат Макс((Дата1 - Дата2) / 86400, (Дата2-Дата1 ) / 86400);
      Ответить

    Добавить комментарий