LC_TOD カテゴリー

ILE COBOL では、LC_TOD ロケール・カテゴリーは、ロケールに基づく時刻項目の時間帯を指示します。 特に、tzdiff キーワードは、現地時間とグリニッジ標準時間の差を指定します。 この情報は、ロケールに基づく時刻項目を他の時刻 (ロケールまたは非ロケールに基づくもの) に移動したり、比較したりする時に使用されます。 ILE COBOL が現在使用する tzdiff キーワードは、LC_TOD キーワードだけです。

LC_TOD カテゴリーは、夏時間の開始および終了時刻、現地時間とグリニッジ標準時間の差、 時間帯の名前、および夏時間の名前を定義するために使用する規則を定義します。 このカテゴリーは、IBM 拡張であり、ソース・ファイル内の他のすべてのカテゴリー定義より後ろに表示する必要があります。

LC_TOD カテゴリーのオペランドはすべて、ストリング値または整数値として定義されます。 ストリング値は、二重引用符 ("") で結合されます。 値はすべて、1 つまたは複数のスペースで、それらが定義するキーワードと区切られます。 2 つの二重引用符が隣接している場合は、未定義ストリング値であることを示します。 0 (ゼロ) は未定義整数値であることを示します。 LC_TOD カテゴリーでは、以下に示すキーワードが認識されます。

tzdiff
時間帯の差を分単位で表す整数値を指定します。 これは、現地時間とグリニッジ標準時間の差です。
tname
時間帯の名前に使用されるストリングを指定します。
dstname
夏時間の名前に使用されるストリングを指定します。
dststart
夏時間の開始日を表す 4 つの整数のセットを指定します。 dststart キーワードのオペランドは、以下の形式のように 4 つのコンマで区切られた一連の整数で構成されます。
month,week,day,time
dststart 形式の変数は、以下のように定義されます。
month
夏時間 (DST) の開始月を表す、整数値を指定します。 この値は 1 から 12 までの範囲で、1 は 1 月に相当し、12 は 12 月に相当します。
week
DST の開始月の週を表す整数値を指定します。 この値は、-4 から 4 までの範囲で、-4 は月末から数えた 4 番目の週に相当し、4 は月の初めから数えた 4 番目の週に相当します。
day
DST の開始月の日にちを表す整数値を指定します。 また、week キーワードが 0 (ゼロ) でない場合、これは、DST が有効になった曜日になります。 この値は、1 からその月の最後の日、または 1 からその週の最後の曜日の範囲です。
time
DST が有効になった時、ローカル標準時刻の真夜中の 12 時以後の秒数を表す整数値を指定します。 この値は 0 から 86399 までの範囲です。
dstend
夏時間の終了日を表す 4 つの整数のセットを指定します。 dstend キーワードのオペランドは、以下の形式のように 4 つのコンマで区切られた一連の整数で構成されます。
month,week,day,time
dstend 形式の変数は、以下のように定義されます。
month
夏時間 (DST) 終了月を表す、整数値を指定します。 この値は 1 から 12 までの範囲で、1 は 1 月に相当し、12 は 12 月に相当します。
week
DST が終了した月の週を表す整数値を指定します。 この値は、-4 から 4 までの範囲で、-4 は月末から数えた 4 番目の週に相当し、4 は月の初めから数えた 4 番目の週に相当します。
day
DST が終了した月の日にちを表す整数値を指定します。 また、week キーワードが 0 (ゼロ) でない場合、これは、DST が終了した週の日にちになります。 この値は、1 からその月の最後の日、または 1 からその週の最後の曜日の範囲です。
time
DST が有効になった時、ローカル標準時刻の真夜中の 12 時以後の秒数を表す整数値を指定します。 この値は 0 から 86399 までの範囲です。
dstshift
夏時間のシフトを秒数で表す整数値を指定します。

LC_TOD の例

以下に、ロケール定義ソース・ファイルにリストされている LC_TOD カテゴリーの例を示します。

      LC_TOD
      #
      tzdiff    360
      tname     "<C><e><n><t><r><a><l>"
      dstname   "<P><D><T>"
      #Set daylight savings time to start on 3rd week of October at
      #midnight on Saturday.
      dststart  10,3,6,0
      #Set daylight savings time to end on April 23, at midnight.
      dstend    4,0,23,0
      dstshift  3600
      #
      END LC_TOD