Επιλύθηκε: Δεν είναι υπολογισμός μελλοντικής ημερομηνίας

Τελευταία ενημέρωση: 09/21/2023
Συγγραφέας: Cobol SourceTrail

Ο υπολογισμός των μελλοντικών ημερομηνιών είναι μια κοινή απαίτηση στην ανάπτυξη λογισμικού, ιδιαίτερα σε επιχειρηματικές εφαρμογές όπως τα συστήματα τιμολόγησης και προγραμματισμού. Σε γλώσσες όπως η Java ή η Python, αυτή η εργασία θα μπορούσε να είναι απλή λόγω των ενσωματωμένων βιβλιοθηκών και λειτουργιών. Ωστόσο, σε παλαιότερες γλώσσες όπως η Cobol, αυτή η εργασία μπορεί να αποδειχθεί πιο περίπλοκη καθώς συχνά πρέπει να λαμβάνουμε υπόψη παράγοντες όπως τα δίσεκτα έτη.

ΤΜΗΜΑ ΑΝΑΓΝΩΡΙΣΗΣ.
ΠΡΟΓΡΑΜΜΑ-ID. ΜΕΛΛΟΝ-ΗΜΕΡΟΜΗΝΙΕΣ.
ΔΙΕΥΘΥΝΣΗ ΔΕΔΟΜΕΝΩΝ.
ΤΜΗΜΑ ΕΡΓΑΣΙΑΣ-ΑΠΟΘΗΚΕΥΣΗΣ.
01 WS-ΤΡΕΧΟΝΤΑ-ΗΜΕΡΟΜΗΝΙΑ.
05 WS-ΤΡΕΧΟΝ-ΕΤΟΣ PIC 9(04).
05 WS-ΤΡΕΧΟΝΤΟΣ-ΜΗΝΑΣ PIC 9(02).
05 WS-ΤΡΕΧΟΝΤΑ-ΗΜΕΡΑ PIC 9(02).
01 WS-FUTURE-DATE.
05 WS-FUTURE-YEAR PIC 9(04).
05 WS-FUTURE-MONTH PIC 9(02).
05 WS-FUTURE-DAY PIC 9(02).
ΔΙΑΔΙΚΑΣΤΙΚΟ ΤΜΗΜΑ.
ΑΠΟΔΟΧΗ WS-CURRENT-DATE FROM DATE
COMPUTE WS-FUTURE-DAY = WS-CURRENT-DAY + 7
ΜΕΤΑΚΙΝΗΣΗ ΤΡΕΧΟΝΤΟΣ-ΜΗΝΑΣ ΣΤΟ WS-ΜΕΛΛΟΝ-ΜΗΝΑ
ΜΕΤΑΚΙΝΗΣΗ ΤΡΕΧΟΝ-ΕΤΟΣ ΣΤΟ ΜΕΛΛΟΝ-ΕΤΟΣ
IF WS-FUTURE-DAY > 30
ΠΡΟΣΘΗΚΗ 1 ΣΤΟ WS-FUTURE-MONTH
ΑΦΑΙΡΕΣΤΕ 30 ΑΠΟ WS-FUTURE-DAY
ΤΕΛΟΣ ΕΑΝ
ΑΝ ΕΙΝΑΙ-ΜΕΛΛΟΝ-ΜΗΝΑΣ > 12
ΠΡΟΣΘΗΚΗ 1 ΣΤΟ WS-FUTURE-YEAR
ΑΦΑΙΡΕΣΤΕ 12 ΑΠΟ WS-FUTURE-MONTH
ΤΕΛΟΣ ΕΑΝ
ΕΜΦΑΝΙΣΤΕ «ΜΙΑ ΕΒΔΟΜΑΔΑ ΑΡΓΟΤΕΡΑ ΗΜΕΡΟΜΗΝΙΑ ΕΙΝΑΙ» WS-FUTURE-DATE
ΣΤΑΜΑΤΗΣΤΕ ΤΡΕΞΤΕ.

Ας αναλύσουμε αυτόν τον κώδικα.

Πώς είναι δομημένος ο κώδικας;

Το πρόγραμμα Cobol ξεκινά με το 'IDENTIFICATION DIVISION' που είναι υποχρεωτικό τμήμα σε όλα τα προγράμματα Cobol. Η δήλωση «PROGRAM-ID» που ακολουθεί προσδιορίζει το πρόγραμμα. Το 'DATA DIVISION' είναι το σημείο όπου ορίζουμε όλα τα δεδομένα ή τις μεταβλητές που θα χρησιμοποιηθούν στο πρόγραμμα. Το 'WORKING-STORAGE SECTION' είναι μια υποδιαίρεση του 'DATA DIVISION' όπου δηλώνουμε τις μεταβλητές εργασίας μας: 'WS-CURRENT-DATE' και 'WS-FUTURE-DATE'. Κάθε ένα από αυτά αναλύεται περαιτέρω σε τμήματα ημέρας, μήνα και έτους. Η «ΔΙΑΔΙΚΑΣΙΑ ΔΙΑΔΙΚΑΣΙΑΣ» είναι όπου κωδικοποιούμε τη λογική για τον υπολογισμό της μελλοντικής ημερομηνίας.

Η έννοια της χειραγώγησης ημερομηνίας στο Cobol

Το πρόγραμμά μας Cobol δέχεται πρώτα την τρέχουσα ημερομηνία από το σύστημα. Στη συνέχεια υπολογίζει τη μελλοντική ημερομηνία προσθέτοντας 7 στην τρέχουσα ημέρα. Εάν η μελλοντική ημέρα υπερβαίνει το 30 (που σημαίνει το τέλος ενός μήνα), αυξάνει τον μήνα κατά 1 και αφαιρεί 30 από την ημέρα. Μια παρόμοια διαδικασία χρησιμοποιείται για τη λογιστική για το τέλος του έτους. Προφανώς, αυτό είναι ένα απλουστευμένο παράδειγμα που δεν λαμβάνει υπόψη τη διαφορετική διάρκεια των μηνών ή τα δίσεκτα έτη, αλλά περιγράφει τη βασική διαδικασία.

Συμπερασματικά, ενώ η αντιμετώπιση ημερομηνιών στο Cobol μπορεί αρχικά να φαίνεται δύσκολη, μπορεί να διευκολυνθεί με τη διάσπαση της ημερομηνίας σε μικρότερα στοιχεία και τον προσεκτικό χειρισμό της μετάβασης μεταξύ ημερών, μηνών και ετών. Αυτός ο προσεκτικός χειρισμός των ημερομηνιών είναι επίσης μια υπενθύμιση της προσοχής στη λεπτομέρεια που απαιτείται στο Cobol, αντικατοπτρίζοντας την εποχή προέλευσης της γλώσσας και τη συνεχιζόμενη χρήση της σε συστήματα όπου η ακρίβεια και η ακρίβεια είναι πρωταρχικής σημασίας.

Σχετικές αναρτήσεις: