Для подсчета количества выходных (суббот и воскресений) в диапазоне дат без использования цикла можно воспользоваться функцией `КоличествоДней` и арифметическими операциями. Вот пример кода на 1С:
1C
Функция ПолучитьКоличествоВыходных(ДатаНачала, ДатаКонца)
// Убедимся, что ДатаНачала меньше ДатаКонца
Если ДатаНачала > ДатаКонца Тогда
Возврат 0;
КонецЕсли;
// Общее количество дней в диапазоне
КоличествоДней = ДатаКонца - ДатаНачала + 1;
// Количество полных недель
ПолныеНедели = КоличествоДней / 7;
// Количество выходных в полных неделях
ВыходныеВПолныхНеделях = ПолныеНедели * 2;
// Остаток дней после полных недель
ОстатокДней = КоличествоДней % 7;
// Подсчет выходных в остатке
ВыходныеВОстатке = 0;
Для НомерДня = 0 По ОстатокДней - 1 Цикл
Если (ДеньНедели(ДатаНачала + НомерДня) = 6) Или (ДеньНедели(ДатаНачала + НомерДня) = 0) Тогда
ВыходныеВОстатке = ВыходныеВОстатке + 1;
КонецЕсли;
КонецЦикла;
// Общее количество выходных
Возврат ВыходныеВПолныхНеделях + ВыходныеВОстатке;
КонецФункции
В этом коде мы сначала вычисляем общее количество дней в диапазоне, затем определяем количество полных недель и выходных в них. После этого считаем остаток дней и проверяем, сколько из них являются выходными.
Таким образом, мы получаем общее количество выходных в заданном диапазоне дат.