最初のページに戻ります。

総合の目次があるページに戻ります。

よく使うマニュアルです

Wiki

updated on 2004.06.23

7.14.UDATE(*DATE)とTIMEの日付

[ Previous ] [ HOME ] [ Upper ] [ Next ]


  • UDATEや*DATEはジョブ日付
  • TIME命令の日付はシステム日付 です。

どのように違うかというと、ジョブ日付は、ジョブの開始時点でのシステム日付です。

例えば10月31日の午後11時59分に開始されたジョブのジョブ日付は、実際の日付が11月1日に変わっても、ジョブ日付は10月31日のままです。

こんなことが起きます。もしかりに、残業した人が、午後11時から端末でずーっと仕事して、午前零時すぎに印刷のプログラムを走らせたとします。レポート上の見出しの日付が、UDATEで取り出されて、時間がTIME命令で取り出された場合、日付は前日のままで、時間だけ0:30:00などと印刷されます。後でこれを見た人は、いったい何日の0:30なのか分からないのです。11/1の0:30:00なら分かるのに、10/31の0:30:00と表示されては、まるでタイムマシンで前日に戻ったかのよう。実際、そんな夜中やるはず無いと思っても、やる人はいるんですよ。


何でこんな日付があるのかは実はわかりません。ジョブ日付はジョブ単位に変更できるので、デバッグに便利な反面、午前0時を回ると困ってしまいます。また、RPGのH仕様書で日付形式を指定できるのは、ジョブ日付です。TIME命令は、b_debug.gif (341 バイト)SYSVALジョブ環境の日付形式で取り込まれます。ILEは関数なしで日付形式を変換できるんですが、RPG400は駄目です。自分で変換します。

 尚、ジョブ時間はありません。時間はTIME命令(システム値)で取り出すしか手はありません。

追記 1998/6/16b_upd.gif (283 バイト)

TIME命令

1998/5/14 午前10:11:35の場合

時間6桁+日付6桁

日付形式 1 2 3 4 5 6 7 8 9 10 11 12
YMD 1 0 1 1 3 5 9 8 0 5 1 4
MDY 1 0 1 1 3 5 0 5 1 4 9 8
内容 時間 システム日付6桁

時間6桁+日付8桁

日付形式 1 2 3 4 5 6 7 8 9 10 11 12 13 14
YMD 1 0 1 1 3 5 1 9 9 8 0 5 1 4
MDY 1 0 1 1 3 5 0 5 1 4 1 9 9 8
内容 時間 システム日付8桁

また、日付の形式は、ジョブ環境の日付形式から取り出されます。システム値が*YMDでも、ジョブが*MDYならば、TIME命令の日付は05141998になります。


[ Previous ] [ HOME ] [ Upper ] [ Next ]

You are at K's tips-n-kicks of AS/400

 

SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送