COBOL言語の日付の操作について理解しよう!|基礎ガイド

COBOL(コボル)言語のさまざまな日付操作の方法とは

基礎-言語の日付の操作-イメージ

COBOL(コボル)言語の日付操作とは?

ではCOBOL言語の日付操作について考えてみましょう。日付は時間の単位で特定の日を表すもので、年/月/日の形式で表されます。システムで日付を取得する際にはこの日付に合わせて日時情報も合わせて取得されることが一般的です。日付はカレンダーシステムやデータベースの管理、ログファイルの管理、タスクスケジューリングなど様々なところで用いられています。では早速プログラムを作成して理解していきましょう。書き方が複数ありますのでどちらも試してみましょう。

書き方1(関数使用)

FUNCTION CURRENT-DATE

書き方2(ACCEPT文使用)

ACCEPT 変数名 FROM DATE

使用例:

基礎-言語の日付の操作を使用したプログラム1-使用例

実行結果:

基礎-言語の日付の操作を使用したプログラム1-実行結果

COBOL(コボル)言語の日付操作における基本事項やルールについて

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

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

3.「CURRENT-DATE」に引数を指定する事はできません。

4.ACCEPT 変数名 FROM DATEは、YYMMDD:符号なし6桁の数字項目(西暦下2桁、月、日)が取得できます。DATEの部分は他にも以下の指定が可能です。
 DAY :YYDDD 符号なし5桁の数字項目(西暦下2桁、通年日)
 DAY-OF-WEEK:W 符号なし1桁の数字項目(月曜日1~日曜日7)
 TIME :HHMMSSSTT 符号なし8桁の数字項目(時、分、秒、1/100秒)

COBOL(コボル)言語の日付操作における注意点

日付の取得方法について2つの方法をご説明しました。現在一般的に使用されているものは組込み関数CURRENT-DATEになっています。ACCEPT文は1900年代は一般的に用いられていましたが、西暦下2桁しか情報を持っていないことによるシステムトラブル(2000年問題)が発生し、組込み関数CURRENT-DATEに改修したという経緯がありますのでACCEPT文を使用する際には注意しましょう。

日付操作を考えたCOBOL(コボル)プログラムの活用法

先ほど日付取得の方法をいくつかご紹介しました。実際にACCEPT文を使ってみて処理結果を確認してみましょう。また現在の日付の他にも日付が利用されることがあります。例えば、プログラムのコンパイルした日付の取得などです。この日付は実際の業務プログラムでの利用というよりは、維持保守していく中でいつ更新したプログラムなのか判断する際に利用します。そう言った関数も用意されていますので、合わせて理解を深めてみましょう。

サンプルプログラム:

  1. IDENTIFICATION DIVISION.
  2. PROGRAM-ID. DATE_SAMPLE2.
  3. ENVIRONMENT DIVISION.
  4. DATA DIVISION.
  5. WORKING-STORAGE SECTION.
  6. 01 WK-DATE PIC X(8).
  7. 01 WK-DAY PIC X(8).
  8. 01 WK-DAY-OF-WEEK PIC X(8).
  9. 01 WK-TIME PIC X(8).
  10. PROCEDURE DIVISION.
  11.  DISPLAY FUNCTION CURRENT-DATE.
  12.  
  13.  ACCEPT WK-DATE FROM DATE.
  14.  ACCEPT WK-DAY FROM DAY.
  15.  ACCEPT WK-DAY-OF-WEEK FROM DAY-OF-WEEK.
  16.  ACCEPT WK-TIME FROM TIME.
  17.  
  18.  DISPLAY WK-DATE.
  19.  DISPLAY WK-DAY.
  20.  DISPLAY WK-DAY-OF-WEEK.
  21.  DISPLAY WK-TIME.
  22.  
  23.  DISPLAY FUNCTION WHEN-COMPILED.
  24.  
  25. STOP RUN.

実行結果:

基礎-言語の日付の操作を使用したプログラム2-実行結果

今回はCOBOL言語のさまざまな日付の操作方法についてご紹介しました。日付操作はCOBOL言語では基本的なプログラミングになりますので、実際に活用できるようにご自身で記述して理解を深めましょう。他のプログラミング言語を学ばれている方は、その言語と比較しながら違いについても理解してみましょう。

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

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

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

COBOL入門のカテゴリー

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