Πάσχα! Ελλήνων Πάσχα!

Σε λίγες ημέρες, την Κυριακή 24 Απριλίου, έχουμε Πάσχα.
Θυμάστε ποια ημερομηνία ήταν πέρσι το Πάσχα; Ποια ημερομηνία θα είναι του χρόνου;
Δεν χρειάζεται να ψάχνετε για ημερολόγιο.
Απλά ανοίξτε ένα βιβλίο excel και γράψτε στο κελί A1 την χρονιά που σας ενδιαφέρει πχ 2012 και σε ένα άλλο κελί εισάγετε την συνάρτηση:
=DATE(A1;3;31)+MOD(19*MOD(A1;19)+16;30)+MOD(2*MOD(A1;4)+4*MOD(A1;7)+6*MOD(19*MOD(A1;19)+16;30);7)+3 
Η συνάρτηση θα σας δώσει την ημερομηνία του ορθόδοξου Πάσχα για το 2012 δηλαδή: Κυριακή, 15-Απρ-2012. (Μην ξεχάσετε να μορφοποιήσετε το κελί σε μια μορφή ημερομηνίας).
Ο τύπος είναι απλώς μεταγραφή στο excel του αλγόριθμου Gauss, ο οποίος δίνει το ορθόδοξο Πάσχα για την χρονική περίοδο 1900 έως 2099 σε ημερομηνίες του Γρηγοριανού (Νέου) ημερολογίου.
Επειδή το νέο Γρηγοριανό ημερολόγιο εφαρμόστηκε στην Ελλάδα το 1923, ο τύπος για το Ελληνικό Πάσχα, δίνει σωστά αποτελέσματα για τα έτη 1923 έως 2099.
Αν θέλετε να προγραμματιστείτε και για μετά το… 2100 ο τύπος μπορεί να βελτιωθεί. Προσθέστε του, μετά το +3 στο τέλος, το γινόμενο:
+(A1>2099)*(INT(A1/100)-20)
και θα έχετε μια συνάρτηση που θα σας δώσει σωστά το Ορθόδοξο Πάσχα για τα έτη 1923 έως 2399.

Εκτός από τις συναρτήσεις φύλλου να και μία συνάρτηση χρήστη, η OrthEasterDay.
Η συνάρτηση αυτή δίνει την Γρηγοριανή ημερομηνία του Ορθόδοξου Πάσχα έως το έτος 9999. (Η ημερομηνία 31/12/9999 είναι η πιο μεγάλη που αναγνωρίζει το excel). Από ένα παλιό πίνακα ημερομηνιών που έχω, έλεγξα τις ημερομηνίες έως το 4099 και η συνάρτηση τις αποδίδει σωστά. Υπολογίζω ότι αποδίδει σωστά και τα υπόλοιπα έτη έως το 9999.
Η συνάρτηση δέχεται ως όρισμα ένα τετραψήφιο έτος (1923-9999)
απευθείας ή από κελί. Δέχεται επίσης μία ημερομηνία από κελί και αποδίδει
την ημερομηνία του Πάσχα για το έτος της ημερομηνίας.
Function OrthEasterDay(etos As Variant) As Date
'by ioannis varlamis 2003
Dim h As Integer
Dim h1 As Integer
Dim j As Integer
Dim eon As Integer
If VarType(etos) = 7 Then etos = Year(etos)
h = ((19 * (etos Mod 19) + 16) Mod 30) + _
    ((2 * (etos Mod 4) + 4 * (etos Mod 7) + _
    6 * ((19 * (etos Mod 19) + 16) Mod 30)) Mod 7) + 3
If etos > 2099 Then
    eon = Int(etos / 100)
    For j = 21 To eon
        If (j * 100) Mod 400 = 0 Then h1 = h1 Else h1 = h1 + 1
    Next j
End If
h = h + h1
OrthEasterDay = DateSerial(etos, 3, 31) + h
End Function
Αν θέλετε κατεβάστε ένα excel βιβλίο με τις συναρτήσεις: VbaOrthEasterDayFunction

=================================================

Επίσης, μπορείτε να χρησιμοποιήσετε την παρακάτω Excel Web αλληλεπιδραστική εφαρμογή, για να κάνετε τους υπολογισμούς σας.
Γράφτε στα κελιά Α4 έως Α9 τα έτη που σας ενδιαφέρουν και στα κελιά δεξιά θα εμφανιστούν οι ημερομηνίες.
Δέστε επίσης στο ίδιο ιστολόγιο το θέμα : “Ημερομηνίες Πάσχα, Ορθόδοξου, Καθολικού, παλαιού Ιουλιανού, για όλα τα έτη”
(Η ανάρτηση τροποποιήθηκε την 25/6/2012)
This entry was posted in excel, Συναρτήσεις φύλλου, Συναρτήσεις Χρήστη, VBA and tagged , , , , . Bookmark the permalink.