Быстрый старт. Решение задания №3.3.1
Представляем решение домашнего задания 3.3.1.
К сожалению, у Вас недостаточно прав для просмотра этой записи. Если Вы еще не залогинены на сайте — залогиньтесь.
Если не активировали токен — посмотрите видео-инструкцию (видео N5)
Если вы залогинены, у Вас активирован токен доступа, но вы все равно видите эту запись — напишите нам на e-mail поддержки.
ВЫБОР
КОГДА РАЗНОСТЬДАТ(&ТекДата, ДОБАВИТЬКДАТЕ(Сотрудники.ДатаРождения, ГОД, РАЗНОСТЬДАТ(Сотрудники.ДатаРождения, &ТекДата, ГОД)), ДЕНЬ) < 0
ТОГДА ДОБАВИТЬКДАТЕ(Сотрудники.ДатаРождения, ГОД, РАЗНОСТЬДАТ(Сотрудники.ДатаРождения, &ТекДата, ГОД) + 1) МЕЖДУ &ТекДата И ДОБАВИТЬКДАТЕ(&ТекДата, ДЕНЬ, 3)
ИНАЧЕ ДОБАВИТЬКДАТЕ(Сотрудники.ДатаРождения, ГОД, РАЗНОСТЬДАТ(Сотрудники.ДатаРождения, &ТекДата, ГОД)) МЕЖДУ &ТекДата И ДОБАВИТЬКДАТЕ(&ТекДата, ДЕНЬ, 3)
КОНЕЦ
Вот, по-моему, идеальный вариант в котором предусмотрены все случаи стечения событий
Суть его в том, что если у тебя День рождения в диапазоне между
01.01.2013 и 03.01.2013, а текущая дата, например 30.12.2012,
то дату Дня Рождения следует приводить к 2013, а не 2012 году.
В остальных случаях дату следует приводить к текущему году.
Хорошо, спасибо!
Ок, я запишу для анализа :)
Однако зафиксированная проблема перехода через Новый Год в итоге так и не была решена.
Ведь если сегодня 30 декабря, а через три дня будет 2 января, то получаем фрагмент:
“МЕЖДУ 630 И 52”
– и запрос ничего не вернет.
Спасибо за замечание!
Будем анализировать корретность решения..