======================================================= Функции (UDF) "ПАСХА" и "ТРОИЦА" ======================================================= Данные Определенные пользователем функции (User-Defined Function или UDF) возвращают в ячейку листа, куда они введены, даты православных праздников ПАСХА и ТРОИЦА для любого года, указанного как аргумент. По умолчанию (т.е. если аргумент опустить и оставить пустые скобки) - текущий год.
Function ПАСХА(Optional ГОД AsInteger) AsDate '--------------------------------------------------------------------------------------- ' Procedure : ПАСХА ' Author : KuklP ' Topic_HEADER : Определение даты Пасхи ' Topic_URL : http://www.planetaexcel.ru/forum.php?thread_id=14758 ' Post_Author : KuklP ' Post_URL : http://www.planetaexcel.ru/docs/forum_upload/post_112532.xls ' DateTime : 29.03.2010, 17:37 ' Notes 1 : По умолчанию - текущий год ' Notes 2 : Формат ячейки-результата должен быть ДАТА '--------------------------------------------------------------------------------------- Dim A AsLong, b AsLong, c AsLong, d AsLong, e AsLong, z AsLong Dim МЕСЯЦ AsInteger, ДЕНЬ AsInteger If ГОД = 0Then ГОД = Year(Date)
A = ГОД Mod19: b = ГОД Mod4: c = ГОД Mod7
d = (19 * A + 15) Mod30
e = (2 * b + 4 * c + 6 * d + 6) Mod7
z = d + e
МЕСЯЦ = (z + 25) / 35 + 3
ДЕНЬ = z + 22 - 31 * (МЕСЯЦ / 4)
ПАСХА = DateSerial(ГОД, МЕСЯЦ, ДЕНЬ) + 13 EndFunction
Function ТРОИЦА(Optional ГОД AsInteger) AsDate '--------------------------------------------------------------------------------------- ' Procedure : ТРОИЦА ' Author : KuklP ' Topic_HEADER : Определение даты Троицы ' Topic_URL : http://www.planetaexcel.ru/forum.php?thread_id=14758 ' Post_Author : KuklP ' Post_URL : http://www.planetaexcel.ru/docs/forum_upload/post_112532.xls ' DateTime : 29.03.2010, 17:37 ' Notes 1 : По умолчанию - текущий год ' Notes 2 : Формат ячейки-результата должен быть ДАТА '---------------------------------------------------------------------------------------
ТРОИЦА = ПАСХА(ГОД) + 49 EndFunction
======================================================= Функции (UDF) "ПАСХА" и "ТРОИЦА" ======================================================= Данные Определенные пользователем функции (User-Defined Function или UDF) возвращают в ячейку листа, куда они введены, даты православных праздников ПАСХА и ТРОИЦА для любого года, указанного как аргумент. По умолчанию (т.е. если аргумент опустить и оставить пустые скобки) - текущий год.
Function ПАСХА(Optional ГОД AsInteger) AsDate '--------------------------------------------------------------------------------------- ' Procedure : ПАСХА ' Author : KuklP ' Topic_HEADER : Определение даты Пасхи ' Topic_URL : http://www.planetaexcel.ru/forum.php?thread_id=14758 ' Post_Author : KuklP ' Post_URL : http://www.planetaexcel.ru/docs/forum_upload/post_112532.xls ' DateTime : 29.03.2010, 17:37 ' Notes 1 : По умолчанию - текущий год ' Notes 2 : Формат ячейки-результата должен быть ДАТА '--------------------------------------------------------------------------------------- Dim A AsLong, b AsLong, c AsLong, d AsLong, e AsLong, z AsLong Dim МЕСЯЦ AsInteger, ДЕНЬ AsInteger If ГОД = 0Then ГОД = Year(Date)
A = ГОД Mod19: b = ГОД Mod4: c = ГОД Mod7
d = (19 * A + 15) Mod30
e = (2 * b + 4 * c + 6 * d + 6) Mod7
z = d + e
МЕСЯЦ = (z + 25) / 35 + 3
ДЕНЬ = z + 22 - 31 * (МЕСЯЦ / 4)
ПАСХА = DateSerial(ГОД, МЕСЯЦ, ДЕНЬ) + 13 EndFunction
Function ТРОИЦА(Optional ГОД AsInteger) AsDate '--------------------------------------------------------------------------------------- ' Procedure : ТРОИЦА ' Author : KuklP ' Topic_HEADER : Определение даты Троицы ' Topic_URL : http://www.planetaexcel.ru/forum.php?thread_id=14758 ' Post_Author : KuklP ' Post_URL : http://www.planetaexcel.ru/docs/forum_upload/post_112532.xls ' DateTime : 29.03.2010, 17:37 ' Notes 1 : По умолчанию - текущий год ' Notes 2 : Формат ячейки-результата должен быть ДАТА '---------------------------------------------------------------------------------------
ТРОИЦА = ПАСХА(ГОД) + 49 EndFunction