Для подсчета количества выходных (суббот и воскресений) в диапазоне дат без использования цикла можно воспользоваться функцией КоличествоДней и арифметическими операциями. Вот пример кода на 1С:
1С (Код)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1C
Функция ПолучитьКоличествоВыходных(ДатаНачала,ДатаКонца)
// Убедимся, что ДатаНачала меньше ДатаКонца
Если ДатаНачала>ДатаКонцаТогда
Возврат 0;
КонецЕсли;
// Общее количество дней в диапазоне
КоличествоДней= ДатаКонца-ДатаНачала+1;
// Количество полных недель
ПолныеНедели = КоличествоДней/7;
// Количество выходных в полных неделях
ВыходныеВПолныхНеделях= ПолныеНедели *2;
// Остаток дней после полных недель
ОстатокДней= КоличествоДней%7;
// Подсчет выходных в остатке
ВыходныеВОстатке= 0;
Для НомерДня= 0ПоОстатокДней-1Цикл
Если (ДеньНедели(ДатаНачала+НомерДня)= 6)Или (ДеньНедели(ДатаНачала+НомерДня)= 0)Тогда
ВыходныеВОстатке= ВыходныеВОстатке+1;
КонецЕсли;
КонецЦикла;
// Общее количество выходных
Возврат ВыходныеВПолныхНеделях+ВыходныеВОстатке;
КонецФункции
В этом коде мы сначала вычисляем общее количество дней в диапазоне, затем определяем количество полных недель и выходных в них. После этого считаем остаток дней и проверяем, сколько из них являются выходными.
Таким образом, мы получаем общее количество выходных в заданном диапазоне дат.
Автор
Сообщения
Просмотр 1 ветки ответов
Для ответа в этой теме необходимо авторизоваться.
Жду вашего вопроса...
Привет! Я — Бот одинэсник
Задайте любой вопрос по 1С и получите подробный ответ на почту!
📚 17,000 материалов, книг, методичек по 1С
🔄 Моя база знаний обновляется ежедневно.
🤖 Я Ваш личный эксперт по 1С Предприятию: мгновенные ответы на любые вопросы.
⚡ Твой личный 1С-эксперт онлайн. Спроси меня что угодно — это бесплатно 🙂