@Dalgat444

Как проверить будет ли день рождения в определенный период?

Есть дата заселения и дата выезда. Нужно определить будет ли день рождения у клиента в период проживания в нашем отеле? Проблема в том, что дата рождения не будет 2022 года. То есть просто сравнивать между датами заселения и выселения не получается, к примеру, 16.03.1980 в обоих случаях будет меньше.
В карточке сделки указываются дата заселения и дата выселения.
В карточке контакта указывается дата рождения.
В роботе на определенной стадии сделки нужно определить будет ли день рождения в период проживания.
Можно ли использовать substr с переменной типа "дата"?
Как вариант, пытался от system:now отнять дату рождения с помощью datediff с параметром '%y' чтобы вычислить разницу в годах, а потом прибавить к дате рождения и сравнить с датами заселения и выселения. Но, в любом случае, после datediff переменная не получает разницу в годах, а всегда выдает 01.01.1970.
Как изменить в дате рождения год на год заселения?
  • Вопрос задан
  • 58 просмотров
Пригласить эксперта
Ответы на вопрос 2
16.03.1980 - это дата рождения, а не день рождения. День рождения в том смысле, в котором вы этот термин употребляете в данном случае - 16.03.2022. Эту дату вы уже можете сравнивать с датами заселения. Сложностей тут добавляет вариант с заездом и выездом в разные года, но и они легко разрешимы.
Иными словами - берёте год заезда, подставляете его в дату рождения и проверяете, что получившаяся дата попадает в диапазон. Потом повторяете то же самое для года выезда, если он отличается от заезда. Если хоть где-то попали в диапазон, то др будет в отеле.
Ответ написан
gromdron
@gromdron Куратор тега Битрикс24
Работаю с Bitrix24
Как вариант, пытался от system:now отнять дату рождения с помощью datediff с параметром '%y' чтобы вычислить разницу в годах, а потом прибавить к дате рождения и сравнить с датами заселения и выселения.


Создаете 2 переменные:
- День рождения (дата)
- Разница в годах (число)

Первым делом вычисляете разницу (datediff с параметром y) между текущей датой и датой рождения и записываете результат в "Разница в годах". Именно в числовое поле, а не в дату - иначе будет результат 1970 год.
Вторым - устанавливаете "День рождения" как результат dateadd между "Дата рождения" и разницей в годах.
Третьим - сравниваете :)

Можно ли использовать substr с переменной типа "дата"?


Нельзя, однако поле типа "Дата" можно привести к строке и тогда можно.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы