2 桁の年 (YY) を持った日付をどのように解釈するかを定義するには、WINDOW コンパイル時オプションを使用して、世紀ウィンドウを定義します。 前に説明したように、世紀ウィンドウは、2 桁の年が適用される、100 年の幅の開始年を定義します。
PL/I の 2000 年言語拡張 を使用しない場合は、window (w) を使用して、y2 を、2 桁の年から 4 桁の年に変換する、次のような論理をインプリメントする必要があります。
dcl y4 pic'9999';
dcl cc pic'99';
cc = w/100;
if y2 < mod(w,100) then
y4 = (100 * cc) + 100 + y2;
else
y4 = (100 * cc) + y2;この例を使用すると、WINDOW(1900) を指定する場合は、19 は 1919 年と解釈されます。しかし、WINDOW(1950) を指定する場合は、19 は 2019 年と解釈されます。
逆に、この論理は、4 桁の年から変換する場合は、2 桁の年 (y2) を計算します。
dcl y4 pic'9999';
if y4 < w | y4 >= w + 100 then
signal error;
y2 = mod(y4,100);