Σάββατο 15 Μαρτίου 2008

Εορτολόγιο

Ξανασχολήθηκα με ένα πρόγραμμα εορτολόγιου που είχα κάνει κάποτε έπειτα από πολύ καιρό. Ο νέος κώδικας δεν έχει σχεδόν καμία σχέση με τον πρωτόγονο προηγούμενο. Οι σημαντικότερες διαφορές είναι :
Η database έγινε binary file και μεγάλωσε περιέχοντας γύρω στα 900 ονόματα/γεγονότα (προέρχεται από το site http://eortologio.gr/)
Δημιουργήθηκε νέο (text) αρχείο για να βάζετε τα προσωπικά σας γεγονότα
Δημιουργήθηκε νέο (text) αρχείο με τις παγκόσμιες ημέρες (πχ. παγκόσμια ημέρα κατά του AIDS)
Υπολογίζονται οι κινητές εορτές
Υπολογισμός των αργίων ενός έτους
Προσθήκη δυνατότητας αναζήτησης της Κυριακής του Πάσχα
Προσθήκη δυνατότητας αναζήτησης ανά όνομα
Προσθήκη δυνατότητας αναζήτησης ανά ημερομηνία
και πολλά άλλα :P

Τον κώδικα του προγράμματος καθώς (ευανάγνωστος και με σχόλια) και όλα τα υπόλοιπα απαραίτητα αρχεία, μπορείτε να τα βρείτε εδώ. Μπορείτε ακόμη να χρησιμοποιήσετε το script INSTALL.sh που περιέχεται για να εγκατασταθούν όλα αυτόματα (μετά απο 2-3 ερωτήσεις) και για να δημιουργηθεί αυτόματα κάποιο script ώστε να βλέπετε τα αποτελέσματα σε παράθυρο (screenshot1, screenshot2, screenshot3). Mπορείτε να βάλετε το GUI scriptακι (eortologion.sh) να ξεκινάει αυτόματα με την εκκίνηση του γραφικού περιβάλλοντος σε Linux με τους παρακάτω τρόπους :
Αν έχετε GNOME προσθέστε το scriptακι στα "Sessions" στη λίστα με τα "Additional startup programs".
Αν έχετε KDE μπορείτε να βάλετε το script (ή μια συντόμευσή του) στο φάκελο Autostart του KDE (~/.kde/Autostart).
Αν έχετε XFCE προσθέστε το script στη λίστα : Menu --> Settings --> Autostarted applications.
Εναλλακτικά μπορείτε να το προσθέσετε στο αρχείο .xinitrc που βρίσκεται στο home folder σας, κάτω από το σημείο που λέει "# Add your own lines here...".

Ο κώδικας είναι εξολοκλήρου γραμμένος από εμένα. Εκτελέστε "./eortologio -h" για περισσότερες πληροφορίες. Το αρχείο για τα προσωπικά γεγονότα και τις παγκόσμιες ημέρες μπορεί να δημιουργηθεί (αν δε βρεθεί) και από το ίδιο το πρόγραμμα στον κατάλογο που τρέχει. Μπορείτε να χρησιμοποιήσετε και το script eortologion.sh το οποίο ίσως χρειαστεί να το πειράξετε καταλλήλως (αν δε χρησιμοποιήσετε τον Installer).

Περιμένω σχόλια, παρατηρήσεις, αλλαγές, βελτιώσεις κλπ :D
Ευχαριστώ

2 σχόλια:

Ανώνυμος είπε...

Αξιότιμε κύριε,
Επειδή σας απασχολεί το εορτολόγιο, που στο μεταβλητό του κομμάτι εξαρτάται από το Πάσχα, κοίταξε σε παρακαλώ το www.tsakal.net/portal/calendar [μόνο με Internet Explorer].
Πάνω στο κελί της ημέρας του Πάσχα μπορείς να πατήσεις και στο παράθυρο που θα προκύψει θα βρείς σχετικό κώδικα, που εκτιμώ ότι δουλεύει σωστά.
Στη διάθεσή σου αν χρειαστείς βοήθεια.

Τσακαλίδης Γ. Ευάγγελος

forfolias είπε...

Καρταρχας σε ευχαριστώ για τον χρονο σου και τις παρατηρίσεις σου. Αν και δεν έχω internet explorer (ούτε καν winblows), κοίταξα το source της σελίδας σου και νομίζω αναφέρεσε στη συνάρτηση function OrthodoxPascha(iEtos). Σχεδόν το ίδιο κομμάτι κώδικα χρησιμοποιώ απλά το κάνω σε μια γραμμή "pasxa_day = ((19*(etos%19)+16)%30)+((2*(etos%4))+(4*(etos%7))+(6*((19*(etos%19)+16)%30)))%7+3;". Πάντως όσο έχω τεστάρει την ορθότητα του υπολογισμού της Κυριακής του Πάσχα δεν έχω βρει κάποιο λανθασμένο αποτέλεσμα. Δηλαδή νομίζω ότι η συνάρτηση που χρησιμοποιώ αυτή τη στιγμή είναι σωστή. Αν κάνω λάθος θα ήθελα πολύ να το διορθώσω με τη βοηθειά σου.
Σε ευχαριστώ και πάλι.