TIME(現時刻と日付を得る)

By 神居 - Posted: 2013/01/29 Last updated: 2013/01/29 - Leave a Comment

MVS,MSP,VOS3:OSの互換性:API,インターネルの違い – TIME

TIMEは現時刻および日付を得るためのAPIマクロである。TIMEは基本的なパラメーターを使用する限りにおいてMVS、MSPおよびVOS3間で互換がある。ただし呼び出し方法(LINKAGE)および日付の形式(DATETYPE)に関するパラメーターはMVSとMSP/VOS3間での互換性はない。

基本的な構文

上記で示したパラメーターを使う範囲においては、ERRETパラメーターを除きいずれのOS共に互換である。マクロ命令が展開するSVCインターフェースも同様でロードモジュール・レベルでの互換がある。
ERRETはMVSでは廃止された機能である。ただしマクロのパラメーターとしては有効で、API側で無視されるだけである。


日付の形式の指定

TIMEマクロにおける基本的な日付の形式は 0CYYDDDF の符号付きパック10進数で、1月1日を1としたその年内における通算日付(ジュリアン日付)となる。例えば1月29日は029、2月1日は032となる。また年は西暦年の下2桁が戻される。2000年以降か1999年以前かを区別するため、YYの前に世紀を示す数字が返る。1998年なら0098dddF、2013年なら0113dddFとなる。

ジュリアン日付のままでは外部表記には不向きなので、従来はプログラムで日付形式を変換していたが現在では返答される日付の形式を選択できるようにAPIパラメーターが追加された。しかしこの日付の形式を選択するパラメーターは各社それぞれ独自の仕様で追加したため互換はない。

日付の形式はMVSが選択肢が多いが、YYYYMMDD以外は主に欧米の表記(MMDDYYYYやDDMMYYYYなど)で使われるものでMSPやVOS3のシステムで必要とされることは少ないであろう。MSPとVOS3は日付変換を指定するパラメーター名は異なるが、返答のされ方は同じである。


TODクロック値の変換

システム製品などでは日付や時刻をSTCK命令によるTODクロック値で取得・保管し、表示や印刷の際にYYYYMMDD、HHMMSSの形式に変換することも多い。以前であればTODの値はプログラムで計算して変換する必要があったが、現在ではOSが提供するマクロを使用するのが簡単である。(VOS3では時刻変換マクロは提供されていない)
TODクロック値の変換ロジックの参考資料:18.TOD,TIMERの計算(参照:OS/390アセンブラハンドブック 高尾司著)

Posted in API、インターナルの違い • • Top Of Page