Forum

Αναζήτηση στο ms-office.gr

Πάμε!
ms-office.gr > Forum > Microsoft Excel > Συναρτήσεις Excel > Ημερομηνία & ώρα > Υπολογισμός της ημέρας του Άγιου Πάσχα και άλλων κινητών εορτών.
  #1  
Παλιά 21-09-11, 15:18
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 1.328
Προεπιλογή Υπολογισμός της ημέρας του Άγιου Πάσχα και άλλων κινητών εορτών.

Εργασία:
Εύρεση της ημερομηνίας της Κυριακής του Πάσχα αλλά και των υπόλοιπων κινητών εορτών.


Για τα έτη 1900 - 2099:


Στο κελί A1 βρίσκεται το έτος βάσει του οποίου αναζητείται η ημερομηνία του Πάσχα.


AB
12011Κυριακή, 24 Απρίλιος 2011

Τύποι
ΚελίΤύπος
B1=DATE(A1;IF(3+(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))>30;5;4);IF(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<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;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-30))


Για τα έτη: 1600 - 6333

Θα χρειαστούν βοηθητικά κελιά.



AB
12011Κυριακή, 24 Απρίλιος 2011
213
319
427

Τύποι
ΚελίΤύπος
B1=IF(A1>1899;DATE(A1;3+INT((A4+26)/30);1+MOD((A4+27+INT((A4+6)/40));31));1+MOD((A4+27+INT((A4+6)/40));31)&"/"&3+INT((A4+26)/30)&"/"&A1)
A2=(INT(A1/100)-16)-INT((INT(A1/100)-16)/4)+10
A3=MOD(19*INT(MOD(A1;19)+15);30)
A4=A3-MOD(INT((A1 + INT(A1 /4))+A3);7)+A2


H Excel μπορεί να επεξεργαστεί ημερομηνίες από την 01/01/1900 μέχρι 31/12/9999.

Έτσι, οι ημερομηνίες του Πάσχα για έτη πριν από το 1900
επειδή δεν μπορούν να επεξεργαστούν από την Excel (Windows),
η συνάρτηση τις μετατρέπει σε κείμενο προκειμένου να υπάρξει (οπτικό) αποτέλεσμα.

Όσοι δεν θελήσουν να χρησιμοποιήσουν βοηθητικά κελιά, μπορούν να χρησιμοποιήσουν τον παρακάτω κώδικα VBA:

Κώδικας:
Function GreekEaster(iYear As Integer)
    Dim tA%, tB%, tC%, iDay%, iMonth%
    If iYear > 1599 And iYear < 6334 Then
        tA = (iYear \ 100) - 16 - (((iYear \ 100) - 16) \ 4) + 10
        tB = (19 * Int(iYear Mod 19) + 15) Mod 30
        tC = tB - Int((iYear + (iYear \ 4) + tB) Mod 7) + tA
        iDay = 1 + (tC + 27 + ((tC + 6) \ 40)) Mod 31
        iMonth = 3 + (tC + 26) \ 30
        GreekEaster = IIf(iYear > 1899, DateSerial(iYear, iMonth, iDay), iDay & "/" & iMonth & "/" & iYear)
    End If
End Function
Γνωρίζοντας λοιπόν την ημερομηνία του Άγιου Πάσχα είναι πολύ εύκολο να υπολογίσει κανείς και τις υπόλοιπες κινητές εορτές.

Παράδειγμα για επίσημες αργίες που είναι κινητές εορτές όπου Πάσχα = η ημερομηνία της Κυριακής του Πάσχα:

Μ. Παρασκευή: =Πάσχα - 2
Μ. Σάββατο: =Πάσχα - 1
Δευτέρα του Πάσχα =Πάσχα +1
Αγίου Πνεύματος: =Πάσχα - 50



Τάσος
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών σε VB.Net, Access, Excel, Outlook, Word

Τελευταία επεξεργασία από το χρήστη Tasos : 30-09-11 στις 15:13.
Απάντηση με παράθεση
Απάντηση στο θέμα

Εργαλεία Θεμάτων
Τρόποι εμφάνισης

Δικαιώματα - Επιλογές
Δε μπορείτε να δημοσιεύσετε νέα μηνύματα
Δε μπορείτε να δημοσιεύσετε απαντήσεις
Δεν μπορείτε να επισυνάψετε αρχεία
Δεν μπορείτε να επεξεργαστείτε τα μηνύματα σας

Ο κώδικας ΒΒ είναι σε λειτουργία
Τα Smilies είναι σε λειτουργία
Ο κώδικας [IMG] είναι σε λειτουργία
Ο κώδικας HTML είναι σε λειτουργία
Trackbacks are εκτός λειτουργίας
Pingbacks are εκτός λειτουργίας
Refbacks are εκτός λειτουργίας


Παρόμοια Θέματα

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
Υπολογισμός ελληνικού Πάσχα Dimi Ms-Office 10 16-01-12 16:12
[Συναρτήσεις] Oρισμός ημερολογιακού διαστήματος για εύρεση άλλων πληροφοριών LEFTERIS Excel - Ερωτήσεις / Απαντήσεις 9 26-08-11 14:48
[ Ερωτήματα ] Εμφάνιση Ημέρας ΤΖΙΜΗΣ Access - Ερωτήσεις / Απαντήσεις 7 03-07-11 18:08
[ Φόρμες ] Αντιστοιχία Ημερομηνίας - Ημέρας mgeorge Access - Ερωτήσεις / Απαντήσεις 3 04-06-11 19:35
Προσθήκη αργιών και άλλων γεγονότων στο Ημερολόγιο του Outlook. Ms-Office-Development Team Outlook - Tips & Tricks 0 25-11-09 17:26


Η ώρα είναι 00:15.