Для напоминания о приближающихся днях рождения начинает показывать обратный отсчет за нужное количество дней дней.
ФОРМАТ
IsBithdaySoon( birthday ; daysinterval )
birthday - поле днем рождения
daysinterval - интервал для начала предупреждения
ЗАВИСИМОСТИ
Для работы нужна пользовательская функция PluralFormCyr
ИДЕИ ДЛЯ ИСПОЛЬЗОВАНИЯ
Удобно поместить в список контактов для того чтобы успеть подготовиться и поздравить.
Экономит место на экране, так как показывает только когда до дня рождения остается заданное количество дней. Можно разместить под/над фотографией контакта
Код: Выделить всё
/*
Функция: IsBithdaySoon( birthday ; daysinterval )
Назначение: Для напоминания о приближающихся днях рождения начинает показывать обратный отсчет за нужное количество дней.
Автор: Алексей Сыч
Версия: 1
Дата обновления: 23.01.2018
Зависимости: Для работы нужна пользовательская функция PluralFormCyr
*/
Let([
CurrentDate=Get(CurrentDate);
birthday=GetAsDate(birthday);
birthdayThisYear= Date (Month(birthday);Day(birthday); Year(CurrentDate) );
daysToBirthday= birthdayThisYear - CurrentDate ;
IsSoon=(0<=daysToBirthday and daysToBirthday<=daysinterval);
text=If( IsSoon ; // скоро ДР
Choose(
Min(3;daysToBirthday); //обрезаем до 3 все варианты для выбора - 4 варианта начинаются с 0
/* ноль -- сегодня, один - через день, два -- через два дня,
три -- все остальные случаи*/
"⚜ сегодня";
"завтра день рождения";
"послезавтра будет день рождения";
" день рождения через "& PluralFormCyr(daysToBirthday;"день/дня/дней");
PluralFormCyr(daysToBirthday;"день/дня/дней")&" до дня рождения"
) //end of choose
; "" ) //end of if -- значит не скоро - возвращает пусто
];
text
)
/*
Формула сравнивает месяц текущей даты с месяцем даты рождения плюс минус 15 дней (в диапазоне 30 дней). Для этого к текущей дате прибавляется 15 дней и полученная дата сравнивается с датой дня рождения в текущем году. Если разница меньше или равна 15, то день рождения попадает в ближайшие 30 дней. Для отображения "дней до дня рождения " больше чем за 3 дня используется функция PluralFormCyr
*/