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

COBOL(コボル)言語の予約語DATE-OF-INTEGERを使った日付の操作とは

辞典・辞書-DATE-OF-INTEGER-イメージ

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

COBOL(コボル)の組込み関数であるDATE-OF-INTEGER関数は、グレゴリオ通日から標準日付を求めたい場合に使用します。グレゴリオ通日とは、現行の太陽歴として日本を含む世界各国で用いられているグレゴリオ歴の1601年1月1日を第1日とした通日を指します。このグレゴリオ通日は正の整数として取り扱われますので、日付を加算、減算したい場合などに用いられる事があります。では早速COBOL言語での使い方について見ていきましょう。

書き方(DATE-OF-INTEGER関数):

FUNCTION DATE-OF-INTEGER(引数1)

・関数の型:整数

・引数1:グレゴリオ暦1601年1月1日以降の通算日数を表す正の整数

・戻り値:YYYYMMDD形式を取り、YYYYはグレゴリオ暦の暦年、MM 及び DD はそれぞれ月と日

使用例:

辞典・辞書-DATE-OF-INTEGER-使用例

実行結果:

辞典・辞書-DATE-OF-INTEGER-実行結果

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

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

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

3.引数1は正の整数である必要があります。

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

COBOL言語のDATE-OF-INTEGER関数は、引数としてグレゴリオ通日を指定する必要がありますが、通常グレゴリオ通日を意識している方はいないでしょう。そのため、引数として指定するグレゴリオ通日は、先ほどの使用例でもご紹介している別の関数「INTEGER-OF-DATE」を用いて求める事が一般的です。

「INTEGER-OF-DATE」は、標準日付からグレゴリオ通日に変換する関数です。引数として標準日付を指定する事で特に1601年1月1日から何日経っているかを意識する事なく通日を求める事ができます。

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

DATE-OF-INTEGER関数は、先ほどご紹介した通り正の整数であるグレゴリオ通日を標準日付に変換する関数でした。ここでは活用法として、本日日付から前後15日の日付を求めるもの、また指定した日付から前後15日の日付を求める簡単なプログラムをご紹介します。日付というのは単純に算術演算できるデータ型ではありませんが、このように整数値であるグレゴリオ通日を用いる事で日付も演算する事ができます。

サンプルプログラム(DATE-OF-INTEGER2):

  1. IDENTIFICATION DIVISION.
  2. PROGRAM-ID. DATE-INTEGER_SAMPLE2.
  3. ENVIRONMENT DIVISION.
  4. INPUT-OUTPUT SECTION.
  5. DATA DIVISION.
  6. WORKING-STORAGE SECTION.
  7. 01 WK-AREA.
  8. 03 WK-YYMMDD PIC X(08).
  9. 03 WK-DAMMY PIC X(13).
  10. PROCEDURE DIVISION.
  11. MOVE FUNCTION CURRENT-DATE TO WK-AREA.
  12.  
  13. DISPLAY FUNCTION INTEGER-OF-DATE(WK-YYMMDD).
  14. DISPLAY FUNCTION DATE-OF-INTEGER(FUNCTION INTEGER-OF-DATE(WK-YYMMDD) + 15).
  15. DISPLAY FUNCTION DATE-OF-INTEGER(FUNCTION INTEGER-OF-DATE(WK-YYMMDD) - 15).
  16.  
  17. DISPLAY FUNCTION DATE-OF-INTEGER(FUNCTION INTEGER-OF-DATE(20220404) + 15).
  18. DISPLAY FUNCTION DATE-OF-INTEGER(FUNCTION INTEGER-OF-DATE(20220404) - 15).
  19.  
  20. STOP RUN.

実行結果(DATE-OF-INTEGER2):

辞典・辞書-DATE-OF-INTEGER-実行結果

今回ご紹介したDATE-OF-INTEGERのサンプルプログラムは、グレゴリオ通日を標準日付に変換する関数でした。グレゴリオ通日などあまり身に覚えのない関数は敬遠されがちですが、このように日付の操作をするには便利な関数です。使用した事がない方は、是非この機会に一度サンプルプログラムを実行してみて機能の確認を行うとともに、実際のプログラムに応用していっていただければと思います。

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

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

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

COBOL入門のカテゴリー

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