Mengira tarikh masa hadapan adalah keperluan biasa dalam pembangunan perisian, terutamanya dalam aplikasi perniagaan seperti sistem pengebilan dan penjadualan. Dalam bahasa seperti Java atau Python, tugas ini boleh menjadi mudah kerana perpustakaan dan fungsi terbina. Walau bagaimanapun, dalam bahasa lama seperti Cobol, tugas ini boleh terbukti menjadi lebih kompleks kerana kita sering perlu mengambil kira faktor seperti tahun lompat.
BAHAGIAN PENGENALAN.
PROGRAM-ID. TARIKH MASA DEPAN.
BAHAGIAN DATA.
BAHAGIAN PENYIMPANAN KERJA.
01 WS-TARIKH SEMASA.
05 WS-TAHUN SEMASA PIC 9(04).
05 WS-BULAN SEMASA PIC 9(02).
05 WS-HARI SEMASA PIC 9(02).
01 WS-FUTURE-DATE.
05 WS-TAHUN-DEPAN PIC 9(04).
05 WS-BULAN HADAPAN PIC 9(02).
05 WS-HARI HADAPAN PIC 9(02).
BAHAGIAN PROSEDUR.
TERIMA WS-CURRENT-DATE DARI TARIKH
hitung WS-HARI HADAPAN = WS-HARI SEMASA + 7
PINDAHKAN WS-BULAN-SEMASA KE WS-BULAN-DEPAN
PINDAHKAN WS-TAHUN SEMASA KE WS-TAHUN-DEPAN
JIKA WS-HARI HADAPAN > 30
TAMBAHKAN 1 KE WS-BULAN HADAPAN
TOLAK 30 DARI WS-FUTURE-DAY
TAMAT-JIKA
JIKA WS-BULAN HADAPAN > 12
TAMBAHKAN 1 KE WS-TAHUN AKAN DATANG
TOLAK 12 DARI WS-BULAN HADAPAN
TAMAT-JIKA
PAPARAN “TARIKH SATU MINGGU KEMUDIAN ADALAH ” WS-FUTURE-DATE
BERHENTI LARI.
Mari pecahkan kod ini.
Bagaimanakah kod distrukturkan?
Program Cobol bermula dengan 'BAHAGIAN PENGENALAN' yang merupakan bahagian wajib dalam semua program Cobol. Pernyataan 'PROGRAM-ID' berikutan ia mengenal pasti program. 'BAHAGIAN DATA' ialah tempat kita mentakrifkan semua data atau pembolehubah yang akan digunakan dalam atur cara. 'BAHAGIAN PENYIMPANAN KERJA' ialah subbahagian 'BAHAGIAN DATA' di mana kami mengisytiharkan pembolehubah kerja kami: 'WS-CURRENT-DATE' dan 'WS-FUTURE-DATE'. Setiap daripada ini dipecahkan lagi kepada bahagian hari, bulan dan tahun. 'BAHAGIAN PROSEDUR' ialah tempat kita mengodkan logik untuk mengira tarikh akan datang.
Konsep Manipulasi Kurma dalam Cobol
Program Cobol kami mula-mula menerima tarikh semasa daripada sistem. Ia kemudian mengira tarikh masa hadapan dengan menambah 7 pada hari semasa. Jika hari hadapan melebihi 30 (menandakan akhir bulan), ia menambah bulan sebanyak 1 dan menolak 30 daripada hari tersebut. Proses yang sama digunakan untuk mengambil kira akhir tahun. Jelas sekali, ini adalah contoh ringkas yang tidak mengambil kira panjang bulan atau tahun lompat yang berbeza-beza, tetapi ia menggariskan proses asas.
Kesimpulannya, walaupun berurusan dengan tarikh dalam Cobol pada mulanya kelihatan sukar, ia boleh diringankan dengan memecahkan tarikh kepada komponen yang lebih kecil dan mengendalikan peralihan antara hari, bulan dan tahun dengan berhati-hati. Pengendalian tarikh yang begitu teliti juga merupakan peringatan tentang perhatian terhadap perincian yang diperlukan dalam Cobol, mencerminkan era asal bahasa dan penggunaan berterusannya dalam sistem di mana ketepatan dan ketepatan adalah yang terpenting.