Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Υπολογισμός Ημερομηνίας Ορθόδοξου Πάσχα και κινητών εορτών

Îåêßíçóå áðü ôï ìÝëïò SValsamis. Τελευταία δημοσίευση από το μέλος SValsamis στις 23-02-2006, 13:25. Υπάρχουν 0 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  23-02-2006, 13:25 10042

    Υπολογισμός Ημερομηνίας Ορθόδοξου Πάσχα και κινητών εορτών

    Ο παρακάτω αλγόριθμος υπολογίζει την ημερομηνία της Κυριακής του Πάσχα.
    (Πρώτη Κυριακή μετά την πρώτη πανσέληνο της εαρινής ισημερίας)
    Αφορά στο Γρηγοριανό ημερολόγιο και είναι το Πάσχα των ορθοδόξων και ισχύει για τα έτη από 1583 έως 4099.
    Για υπολογισμό με άλλα ημερολόγια επισκεφθείτε
    http://users.chariot.net.au/~gmarts/eastalg.htm

    'Περνάμε σαν παράμετρο το έτος που θέλουμε να υπολογίσουμε το Πάσχα
    Private
    Function GetEasterDate(ByVal Y As Integer)
    Dim FirstDig, Remain19, temp, d, m As Integer
    Dim tA, tB, tC, tD, tE As Integer
    'Ισχύει για έτη από 1583 έως 4099

    If (Y < 1583 Or Y > 4099) Then
          
    System.Windows.Forms.MessageBox.Show("To Γρηγοριανό ημερολόγιο εφαρμόζεται μόνο για τα έτη από 1583 έως 4099","GetEasterDate Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
        Return nothing

    End If

    FirstDig = CType(Y \ 100, Integer) 'Τα δύο πρώτα ψηφία του έτους

    ' PFM (Paschal Full Moon )
    ' Αλγόριθμος υπολογισμού της πρώτης πανσελήνου της εαρινής ισημερίας
    'Για λεπτομέρειες http://www.assa.org.au/edm.html#OrthCalculator

    Remain19 = Y Mod 19

    tA = ((225 - 11 * Remain19) Mod 30) + 21

    'Εύρεση της επόμενης Κυριακής
    tB = (tA - 19) Mod 7
    tC = (40 - FirstDig)
    Mod 7
    temp = Y
    Mod 100

    tD = (temp + temp \ 4) Mod 7
    tE = ((20 - tB - tC - tD)
    Mod 7) + 1

    d = tA + tE

    'Μεταφορά 10 ημερών από το Γρηγοριανό ημερολόγιο
    temp = 10

    If Y > 1600 Then temp = temp + FirstDig - 16 - ((FirstDig - 16) \ 4)

    d = d + temp

    If d > 61 Then
       
    d = d - 61
       m = 5
    'Μάϊος
    ElseIf d > 31 Then
       
    d = d - 31
       m = 4
    'Απρίλιος
    Else
       
    m = 3 'Μάρτιος

    End If

    Return New Date(Y, m, d)

    End Function

    Κλήση Function
    GetEasterDate (2006)

    Κινητές εορτές
    Μπορούμε από την ημερομηνία του Πάσχα να υπολογίσουμε όλες τις κινητές εορτές
    ΠΧ.

    Τριώδιο   70 ημέρες πρίν
    Καθαρά Δευτέρα 48 ημέρες πρίν

    Σάββατος του Λαζάρου  8 ημέρες πρίν

    Αγίων Πάντων 56 ημέρες μετά


    Σταύρος Βαλσάμης
    Προγραμματιστής
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems