Riješeno: Nije izračun budućeg datuma

Zadnje ažuriranje: 09/21/2023

Izračunavanje budućih datuma uobičajeni je zahtjev u razvoju softvera, posebno u poslovnim aplikacijama kao što su sustavi naplate i rasporeda. U jezicima kao što su Java ili Python ovaj bi zadatak mogao biti jednostavan zbog ugrađenih biblioteka i funkcija. Međutim, u starijim jezicima kao što je Cobol, ovaj zadatak može se pokazati složenijim jer često moramo uzeti u obzir faktore kao što su prijestupne godine.

ODJEL ZA IDENTIFIKACIJU.
ID PROGRAMA. BUDUĆNOST-DATUMI.
PODJELA PODATAKA.
RADNO-SKLADIŠNI DIO.
01 WS-TEKUĆI-DATUM.
05 WS-TEKUĆA GODINA SLIKA 9(04).
05 WS-TEKUĆI-MJESEC SLIKA 9(02).
05 WS-TEKUĆI-DAN SLIKA 9(02).
01 WS-BUDUĆNOST-DATUM.
05 WS-BUDUĆA GODINA SLIKA 9(04).
05 WS-BUDUĆNOST-MJESEC SLIKA 9(02).
05 WS-BUDUĆNOST-DAN SLIKA 9(02).
PODJELA POSTUPKA.
PRIHVATI WS-CURRENT-DATE FROM DATUMA
IZRAČUNAJ WS-BUDUĆI-DAN = WS-TRENUTNI-DAN + 7
PREMJESTI WS-TEKUĆI-MJESEC U WS-BUDUĆI-MJESEC
PREMJESTI WS-TEKUĆA-GODINA U WS-BUDUĆA-GODINA
AKO WS-FUTURE-DAY > 30
DODAJTE 1 U WS-BUDUĆNOST-MJESEC
ODUZMI 30 OD WS-BUDUĆI-DAN
ZAVRŠI AKO
IF WS-BUDUĆNOST-MJESEC > 12
DODAJTE 1 WS-BUDUĆOJ GODINI
ODUZMI 12 OD WS-BUDUĆI MJESEC
ZAVRŠI AKO
PRIKAZ “TJEDAN KASNIJE DATUM JE ” WS-FUTURE-DATE
PRESTANI TRČATI.

Razdvojimo ovaj kod.

Kako je kod strukturiran?

Cobol program počinje s 'IDENTIFICATION DIVISION' koji je obavezna podjela u svim Cobol programima. Izjava 'PROGRAM-ID' iza nje identificira program. 'ODJEL PODATAKA' je mjesto gdje definiramo sve podatke ili varijable koje će se koristiti u programu. 'WORKING-STORAGE SECTION' je pododjeljak 'DATA DIVISION' gdje deklariramo naše radne varijable: 'WS-CURRENT-DATE' i 'WS-FUTURE-DATE'. Svaki od njih dalje je raščlanjen na dijelove dana, mjeseca i godine. 'PROCEDURE DIVISION' mjesto je gdje kodiramo logiku za izračun budućeg datuma.

Koncept manipulacije datumom u Cobolu

Naš Cobol program prvo prihvaća trenutni datum iz sustava. Zatim izračunava budući datum dodavanjem 7 tekućem danu. Ako budući dan premašuje 30 (što označava kraj mjeseca), on povećava mjesec za 1 i oduzima 30 od dana. Sličan se postupak koristi za obračun na kraju godine. Očito, ovo je pojednostavljeni primjer koji ne uzima u obzir različite duljine mjeseca ili prijestupne godine, ali ocrtava osnovni proces.

Zaključno, dok se rad s datumima u Cobolu isprva može činiti teškim, može se olakšati rastavljanjem datuma na manje komponente i pažljivim rukovanjem prijelazom između dana, mjeseci i godina. Takvo pažljivo rukovanje datumima također je podsjetnik na pozornost posvećenu detaljima koja je potrebna u Cobolu, odražavajući doba nastanka jezika i njegove kontinuirane upotrebe u sustavima gdje su preciznost i točnost najvažniji.

Povezani postovi: