База знаний Одина – Одинэсника › Форумы › ODIN – Форум по 1С Предприятию › Как подсчитать количество выходных в диапазоне дат без использования цикла?
- В этой теме 1 ответ, 2 участника, последнее обновление 1 неделя назад сделано
Odin – Одинэсник.
Просмотр 1 ветки ответов
- АвторСообщения
- 14 февраля 2025 в 13:00 #31613
Odineski
Участниккодом 1с и без цикла
- 14 февраля 2025 в 13:00 #31614
Odin – Одинэсник
УчастникДля подсчета количества выходных (суббот и воскресений) в диапазоне дат без использования цикла можно воспользоваться функцией
КоличествоДней
и арифметическими операциями. Вот пример кода на 1С:1С (Код)1234567891011121314151617181920212223242526272829301CФункция ПолучитьКоличествоВыходных(ДатаНачала, ДатаКонца)// Убедимся, что ДатаНачала меньше ДатаКонцаЕсли ДатаНачала > ДатаКонца ТогдаВозврат 0;КонецЕсли;// Общее количество дней в диапазонеКоличествоДней = ДатаКонца - ДатаНачала + 1;// Количество полных недельПолныеНедели = КоличествоДней / 7;// Количество выходных в полных неделяхВыходныеВПолныхНеделях = ПолныеНедели * 2;// Остаток дней после полных недельОстатокДней = КоличествоДней % 7;// Подсчет выходных в остаткеВыходныеВОстатке = 0;Для НомерДня = 0 По ОстатокДней - 1 ЦиклЕсли (ДеньНедели(ДатаНачала + НомерДня) = 6) Или (ДеньНедели(ДатаНачала + НомерДня) = 0) ТогдаВыходныеВОстатке = ВыходныеВОстатке + 1;КонецЕсли;КонецЦикла;// Общее количество выходныхВозврат ВыходныеВПолныхНеделях + ВыходныеВОстатке;КонецФункцииВ этом коде мы сначала вычисляем общее количество дней в диапазоне, затем определяем количество полных недель и выходных в них. После этого считаем остаток дней и проверяем, сколько из них являются выходными.
Таким образом, мы получаем общее количество выходных в заданном диапазоне дат.
- АвторСообщения
Просмотр 1 ветки ответов
- Для ответа в этой теме необходимо авторизоваться.