======================================================= Функции (UDF) "ПАСХА" и "ТРОИЦА" ======================================================= Данные Определенные пользователем функции (User-Defined Function или UDF) возвращают в ячейку листа, куда они введены, даты православных праздников ПАСХА и ТРОИЦА для любого года, указанного как аргумент. По умолчанию (т.е. если аргумент опустить и оставить пустые скобки) - текущий год. [vba]
Код
Function ПАСХА(Optional ГОД As Integer) As Date '--------------------------------------------------------------------------------------- ' 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 As Long, b As Long, c As Long, d As Long, e As Long, z As Long Dim МЕСЯЦ As Integer, ДЕНЬ As Integer If ГОД = 0 Then ГОД = Year(Date) A = ГОД Mod 19: b = ГОД Mod 4: c = ГОД Mod 7 d = (19 * A + 15) Mod 30 e = (2 * b + 4 * c + 6 * d + 6) Mod 7 z = d + e МЕСЯЦ = (z + 25) / 35 + 3 ДЕНЬ = z + 22 - 31 * (МЕСЯЦ / 4) ПАСХА = DateSerial(ГОД, МЕСЯЦ, ДЕНЬ) + 13 End Function
Function ТРОИЦА(Optional ГОД As Integer) As Date '--------------------------------------------------------------------------------------- ' 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 End Function
[/vba]
======================================================= Функции (UDF) "ПАСХА" и "ТРОИЦА" ======================================================= Данные Определенные пользователем функции (User-Defined Function или UDF) возвращают в ячейку листа, куда они введены, даты православных праздников ПАСХА и ТРОИЦА для любого года, указанного как аргумент. По умолчанию (т.е. если аргумент опустить и оставить пустые скобки) - текущий год. [vba]
Код
Function ПАСХА(Optional ГОД As Integer) As Date '--------------------------------------------------------------------------------------- ' 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 As Long, b As Long, c As Long, d As Long, e As Long, z As Long Dim МЕСЯЦ As Integer, ДЕНЬ As Integer If ГОД = 0 Then ГОД = Year(Date) A = ГОД Mod 19: b = ГОД Mod 4: c = ГОД Mod 7 d = (19 * A + 15) Mod 30 e = (2 * b + 4 * c + 6 * d + 6) Mod 7 z = d + e МЕСЯЦ = (z + 25) / 35 + 3 ДЕНЬ = z + 22 - 31 * (МЕСЯЦ / 4) ПАСХА = DateSerial(ГОД, МЕСЯЦ, ДЕНЬ) + 13 End Function
Function ТРОИЦА(Optional ГОД As Integer) As Date '--------------------------------------------------------------------------------------- ' 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 End Function