10.2.4 日付や時刻を取得するACCEPT文
ACCEPT文で,FROM指定にDATE,DAY,DAY-OF-WEEK,およびTIMEを指定すると,それぞれの指定に応じた日付/時刻の情報を取得できます。
(1) ACCEPT文で取得できる日付/時刻のデータ
ACCEPT文で取得できる日付/時刻のデータを,次に示します。
FROM指定 |
内容 |
形式 |
---|---|---|
DATE |
yymmdd yy:西暦年号の下2けた mm:01〜12(月) dd:01〜31(日) |
符号のない6けたの数字項目 |
DAY |
yyddd yy:西暦年号の下2けた ddd:001〜366(通年日) |
符号のない5けたの数字項目 |
DAY-OF-WEEK |
w w:1〜7(曜日) 1:月曜日 2:火曜日 : 7:日曜日 |
符号のない1けたの数字項目 |
TIME |
hhmmsstt hh:00〜23(時) mm:00〜59(分) ss:00〜59(秒) tt:00〜99(1/100秒) |
符号のない8けたの数字項目 |
(2) ACCEPT文で取得する日付の変更
通常,ACCEPT文では,現在の日付を取得しますが,環境変数を指定すると任意の日付を取得できます。
ACCEPT文で取得する日付を変更する方法を,次に示します。
(a) 西暦日付の変更(CBLDATE)
COBOLプログラムが取得する西暦表記の年月日を変更するには,環境変数CBLDATEを指定します。
- 形式
CBLDATE=yyyymmdd
- yyyy
-
西暦の年を4けたで指定します。
- mm
-
月を2けたで指定します。
- dd
-
日を2けたで指定します。
- 規則
-
-
環境変数CBLDATEを指定して取得する日付を変更できるのは,次の文および関数です。
環境変数CBLDATEでの日付指定が有効となるCOBOLの文/関数
・ACCEPT文 DATE指定
・CURRENT-DATE関数
・MOVE文(日付と時刻用) CURRENT-DATE指定
この環境変数は,上記の文のどれかを初めて実行したときに指定されている値を有効とします。
-
西暦年yyyyのうち,DATE指定のACCEPT文とMOVE文のCURRENT-DATE指定では下2けたが使用され,CURRENT-DATE関数では4けたが使用されます。
-
上記以外の形式で値を指定した場合,実行時に警告のメッセージが出力されます。この場合,環境変数CBLDATEを指定していない場合と同じように,DATE指定のACCEPT文にはシステムの日付が返されます。
-
- 指定例
-
COBOLプログラムが取得する西暦日付を,2010年10月12日に変更する場合の指定例を,次に示します。
CBLDATE=20101012
(b) 通算日付の変更(CBLDAY)
COBOLプログラムのACCEPT文DAY指定が取得する西暦年,および通年日を変更するには,環境変数CBLDAYを指定します。
- 形式
CBLDAY=yyyyddd
- yyyy
-
西暦の年を4けたで指定します。
- ddd
-
通年日(その年が始まってからの通算の日付)を3けたで指定します。
- 規則
-
-
この環境変数を指定すると,初めてDAY指定のACCEPT文が実行されたとき,yyddd(yyは西暦の下2けた)の部分が取得されます。
-
上記以外の形式で値を指定した場合,実行時に警告のメッセージが出力されます。この場合,環境変数CBLDAYを指定していない場合と同じように,DAY指定のACCEPT文にはシステムの日付が返されます。
-
- 指定例
-
ACCEPT文DAY指定が取得する通算日付を,2010年の56日に変更する場合の指定例を,次に示します。
CBLDAY=2010056