Оператор %
В этой статье я подробно разберу оператор %, который возвращает остаток от деления. Рассмотрим особенности его работы, и задачи, когда он может быть применим.
Работа оператора % описана в моей книге «Программировать в 1С за 9 шагов», но не приведены случаи, когда он может понадобиться, в этой статье я восполню пробел, и, возможно, она войдет в уже новую редакцию книги.
И так начнем. Оператор % получает остаток от деления одного числа на другое.
Е = A % B;
E – остаток от деления А на В.
Когда он может быть применим?
Рассмотрим самые . С его помощью можно определить четное число или нет. Если выражение А%2 равно 0, то число четное (остатка от деления нет), а если А%2 не равно 0, то число нечетное.
Так же с его помощью можно вычислять число определенной кратности. Например, есть цикл от 1 до 100, нам нужно вывести на экран числа кратные, к примеру, 7. В этом случае будет такой код:
&НаКлиенте
Процедура ЧислаКратные7(Команда)
Для н = 1 По 100 Цикл
Если н % 7 = 0 Тогда
Сообщить(н);
КонецЕсли;
КонецЦикла;
КонецПроцедуры
И такой результат работы этого кода
Рассмотрим, еще один способ применения оператора %. Очень часто время получается в секундах, например при вычитании одной даты из другой. И бывает необходимость привести все это в какой-то нормальный вид. Поясню, какой будет в этом случае алгоритм
Пусть мы имеем число секунд: 56321.
Нам сейчас нужно получить точное количество минут в этом числе секунд, минута состоит из 60 секунд. Поэтому получив остаток 56321 % 60, мы получим «лишние» секунды (например. 142 = 60 + 60+ 22, 22 – и будет остаток от деления 142 %60). А после того, как вычтем из исходного числа остаток от деления, и поделим все это на 60, то узнаем ровное количество минут в этом числе. Точно так же узнаем ровное количество часов, дней, месяцев и т.д.
Сейчас я создам небольшую обработку, которая будет раскладывать число в секундах на минуты, часы и дни (на месяцы и года дальше будет раскладывать не совсем корректно).
Данная форма обработки будет иметь следующий вид:
Код, который раскладывает число секунд на составляющие:
&НаКлиенте
Процедура Разложить(Команда)
Секунды = СекундыОбщие % 60;
МинутыОбщие = (СекундыОбщие — Секунды) / 60;
Минуты = МинутыОбщие % 60;
ЧасыОбщие = (МинутыОбщие — Минуты) /60;
Часы = ЧасыОбщие % 24;
Дни = (ЧасыОбщие — Часы) / 24;
КонецПроцедуры
Посмотрим результат работы этого кода, на некоторых примерах.
Эти два пример должны Вам дать хорошее представление о работе данного оператора, и, надеюсь, в процессе работы его использование не вызовет у Вас затруднений. А код, где он написан, будет понятен и прост.
Если Вам пригодилась информация из моего блога, или Вы узнали что-то полезное для себя, то Вы можете поддержать мой проект, перечислив любую сумму:
Можно оплатить напрямую
Яндекс.Деньги — 410012882996301
Web Money — R955262494655
Книга «Программировать в 1С за 9 шагов»
Изучите программирование в 1С с помощью моей книги «Программировать в 1С за 9 шагов»
- Без сложных технических терминов.
- Более 500 страниц практического материала.
- Каждое задание сопровождается рисунком (скриншот).
- Сборник задач для домашней проработки.
- Книга написана понятным и простым языком — для новичка.
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
Промо-код на скидку в 16%: vCph8bW3rE
Вступайте в мои группы:
Вконтакте: https://vk.com/1c_prosto
Фейсбуке: https://www.facebook.com/groups/922972144448119/
ОК: http://ok.ru/group/52970839015518
Твиттер: https://twitter.com/signum2009