COBOL言語の関数「CURRENT-DATE」について理解しよう! | 用語辞典

COBOL(コボル)言語の予約語CURRENT-DATEを使った日付、時刻の取得とは

辞典・辞書-CURRENT-DATE-イメージ

COBOL(コボル)言語のCURRENT-DATE関数とは?

COBOL(コボル)の組込み関数であるCURRENT-DATE関数は、プログラムを実行した時の日付や時刻を取得したい場合に使用します。プログラムを実行した時の日付や時刻は、例えばプログラムを使って新しいレコードを新設した日付や、既存のレコードを更新した日付を記録する場合に使用します。その他にも業務上のデータを取り扱う場合にも日付や時刻はかかせない情報です。では早速COBOL言語での使い方について見ていきましょう。

書き方(CURRENT-DATE関数):

FUNCTION CURRENT-DATE

・関数の型:英数字

・引数:なし

・戻り値:プログラムの中で当関数が実行された日付や時刻が返されます。

使用例:

辞典・辞書-CURRENT-DATE-使用例

実行結果:

辞典・辞書-CURRENT-DATE-実行結果

CURRENT-DATE関数のCOBOL(コボル)言語における基本事項やルールについて

1.「CURRENT-DATE」の間の空白や改行は、自由に設定できます。

2.組込み関数の前には予約語「FUNCTION」を指定する必要があります。

3.引数を指定する事はできません。

COBOL(コボル)言語のCURRENT-DATE関数を扱う上での注意点

COBOL言語のCURRENT-DATE関数は、取得する日付はグレゴリオ暦になります。グレゴリオ暦は現行の太陽暦として日本を含む世界各国で用いられています。1年の平均日数を365日とし、400年に97回の閏年をおいてその年を366日としているものです。

また、取得できる日付時刻は21桁になります。各桁の意味は以下の通りです。

1~4桁はグレゴリオ暦の年、5~6桁は年内の月を表す2桁(01~12)、7~8桁は月内の日を表す2桁(01~31)、9~10桁は24時間表記の時間(00~23)、11~12桁はその時刻の分を表す2桁(00~59)、13~14桁はその時刻の秒を表す2桁(00~59)、15~16桁は1秒の100分の1を表す2桁の数字(00~99)、1秒未満の部分を提供できないシステムは00。17桁目は、「-」、「+」、または「0」文字。グリニッジ標準時間よりも進んでいる(+)か遅れている(-)かを表します。18~19桁はグリニッジ標準時間よりも進んでいる、または遅れている時間、20~21桁はグリニッジ標準時間よりも進んでいる、または遅れている分数を表します。

CURRENT-DATE関数を使ったCOBOL(コボル)プログラムの活用法

CURRENT-DATE関数は、日付時刻が21桁で取得できますが先ほどご紹介した通り各桁に意味を持っています。ここでは活用法として、取得した日付時刻をファイルに書き込んで出力したり、必要な桁数分の情報を取得してファイルに出力するという簡単なプログラムをご紹介します。開発したプログラムの業務要件、システム要件に合わせてご活用いただければと思います。

サンプルプログラム(CURRENT-DATE2):

  1. IDENTIFICATION DIVISION.
  2. PROGRAM-ID. CURRENTD_SAMPLE2.
  3. ENVIRONMENT DIVISION.
  4. INPUT-OUTPUT SECTION.
  5. FILE-CONTROL.
  6. SELECT OUT01-FILE
  7. ASSIGN TO "out01.txt"
  8. ORGANIZATION IS LINE SEQUENTIAL.
  9. DATA DIVISION.
  10. FILE SECTION.
  11. FD OUT01-FILE.
  12. 01 OUT01 PIC X(21).
  13. WORKING-STORAGE   SECTION.
  14. 01 WK-AREA.
  15. 03 WK-YYMMDD PIC X(08).
  16. 03 WK-DAMMY PIC X(13).
  17. PROCEDURE DIVISION.
  18. OPEN OUTPUT OUT01-FILE.
  19. DISPLAY "1行目:日付時刻の21桁ファイル出力".
  20. MOVE SPACE TO OUT01.
  21. MOVE FUNCTION CURRENT-DATE TO WK-AREA.
  22. MOVE WK-AREA TO OUT01.
  23. WRITE OUT01.
  24.  
  25. DISPLAY "2行目:日付時刻の8桁ファイル出力".
  26. MOVE SPACE TO OUT01.
  27. MOVE WK-YYMMDD TO OUT01(1:8).
  28. WRITE OUT01.
  29. CLOSE OUT01-FILE.
  30. STOP RUN.

実行結果(CURRENT-DATE2):

辞典・辞書-CURRENT-DATE-実行結果

実行結果(out01.txt):

辞典・辞書-CURRENT-DATE-実行結果

今回ご紹介した「CURRENT-DATE」のサンプルプログラムは、プログラム実行時の日付時刻を取得できる関数です。COBOL(コボル)言語で活用できる関数はこの他にも数多く用意されています。1つ1つ関数の使い方を理解し、実際の業務に活用できるように実際にプログラムを作成して確認してみましょう。

この記事を読んだ人は、こちらの記事も読んでいます

【未経験者歓迎】COBOLプログラマー・システムエンジニアの募集

株式会社COBOLの求人・転職・募集情報を見る

COBOL入門のカテゴリー

取引企業様 募集中
COBOL技術者 募集
COBOL魂
読者採用
COBOL入門