Rešeno: ni izračun datuma v prihodnosti

Zadnja posodobitev: 09/21/2023

Izračun prihodnjih datumov je pogosta zahteva pri razvoju programske opreme, zlasti v poslovnih aplikacijah, kot so sistemi za obračunavanje in razporejanje. V jezikih, kot sta Java ali Python, je ta naloga lahko enostavna zaradi vgrajenih knjižnic in funkcij. Vendar se lahko v starejših jezikih, kot je Cobol, ta naloga izkaže za bolj zapleteno, saj moramo pogosto upoštevati dejavnike, kot so prestopna leta.

ODDELEK ZA IDENTIFIKACIJO.
ID PROGRAMA. PRIHODNOST-DATUMI.
RAZDELITEV PODATKOV.
DELOVNO-SKLADIŠČNI ODDELEK.
01 WS-TRENUTNI-DATUM.
05 WS-TEKOČE LETO SLIKA 9(04).
05 WS-TEKOČI-MESEC SLIKA 9(02).
05 WS-TRENUTNI DAN SLIKA 9(02).
01 WS-PRIHODNJI DATUM.
05 WS-PRIHODNJE-LETO SLIKA 9(04).
05 WS-PRIHODNJI MESEC SLIKA 9(02).
05 WS-FUTURE-DAY PIC 9(02).
DELITEV POSTOPKA.
SPREJMI WS-TRENUTNI-DATUM OD DATUMA
IZRAČUNAJ WS-PRIHODNJI-DAN = WS-TRENUTNI-DAN + 7
PREMAKNI WS-TRENUTNI-MESEC V WS-PRIHODNJI MESEC
PREMAKNI WS-TEKOČE-LETO NA WS-PRIHODNJE-LETO
ČE WS-FUTURE-DAY > 30
DODAJ 1 V WS-PRIHODNJI MESEC
ODŠTEJTE 30 OD WS-PRIHODNJEGA-DNEVA
KONEC-ČE
ČE WS-PRIHODNJI MESEC > 12
DODAJTE 1 V WS-PRIHODNJE-LETO
ODŠTEJ 12 OD WS-PRIHODNJI MESEC
KONEC-ČE
PRIKAZ »EN TEDEN POZNEJE DATUM JE « WS-FUTURE-DATE
USTAVI TEČI.

Razčlenimo to kodo.

Kako je strukturirana koda?

Program Cobol se začne z 'IDENTIFICATION DIVISION', ki je obvezna delitev v vseh programih Cobol. Stavek 'PROGRAM-ID', ki mu sledi, identificira program. 'DATA DIVISION' je mesto, kjer definiramo vse podatke ali spremenljivke, ki bodo uporabljene v programu. 'WORKING-STORAGE SECTION' je podrazdelek 'DATA DIVISION', kjer deklariramo naše delovne spremenljivke: 'WS-CURRENT-DATE' in 'WS-FUTURE-DATE'. Vsak od teh je nadalje razdeljen na dele dneva, meseca in leta. 'PROCEDURE DIVISION' je mesto, kjer kodiramo logiko za izračun prihodnjega datuma.

Koncept manipulacije datumov v Cobolu

Naš program Cobol najprej sprejme trenutni datum iz sistema. Nato izračuna prihodnji datum tako, da doda 7 trenutnemu dnevu. Če prihodnji dan preseže 30 (kar pomeni konec meseca), poveča mesec za 1 in od dneva odšteje 30. Podoben postopek se uporablja za obračun ob koncu leta. Očitno je to poenostavljen primer, ki ne upošteva različnih dolžin mesecev ali prestopnih let, vendar opisuje osnovni postopek.

Skratka, čeprav se lahko ukvarjanje z datumi v Cobolu na prvi pogled zdi težko, ga je mogoče olajšati tako, da datum razčlenite na manjše komponente in skrbno obravnavate prehode med dnevi, meseci in leti. Tako skrbno ravnanje z datumi je tudi opomnik o pozornosti do podrobnosti, ki jo zahteva Cobol, kar odraža obdobje nastanka jezika in njegovo nadaljnjo uporabo v sistemih, kjer sta natančnost in točnost najpomembnejši.

Podobni objav: