■ トリプル・アイ シリーズの2000年問題対応について |
トリプル・アイシリーズで西暦2000年以降に発生する問題、及び対応策についてご説明します。
トリプル・アイ シリーズは画面、または帳票ツールであり、世に言う2000年問題の殆どは関係ありません。例えば00年という年度をどう解釈して、どのように処理を行っているかはアプリケーションの作りによるものであるからです。
但し、ご利用の機能によっては以下の問題が発生するケースがありますので、ご注意ください。
|
■ ■ ■ |
a. 画面用トリプル・アイでの問題
トリプル・アイの日付フィールドは、年が00年である場合、デフォルト状態( /U パラメータ無し、または /U0 )ではこれを1900年と見なしてうるう年のチェックを行います。また、01年から79年は西暦では無く昭和(和暦)と見なします。画面用トリプル・アイにおいては、このうるう年チェックのみが問題となります。
2000年はうるう年であり、2月29日が存在しますが、1900年はうるう年では無い為、2月29日は存在しません。すなわち、デフォルトでは00年2月29日(または00/02/29)という日付は存在しないものとしてオペレータの入力を拒否します。また、2001年以降は昭和と見なしてうるう年チェックを行います。
2000年対応バージョンの トリプル・アイ をお使いの場合、PSRUNの起動パラメータに /U4 を指定してください。00年は2000年と見なされ、2月29日の入力が許可されます。同時に年は常に西暦の下2桁とみなします。
2000年未対応バージョンの トリプル・アイ をお使いの場合、バージョンアップにより上記設定を行っていただくという方法の他に、バージョンアップをしないままでも2000年はPSRUNの起動パラメータに /U2 を指定していただくという方法もあります。これにより、うるう年チェック機能を一旦はずすことができます。そして2001年以降は /U1 パラメータに切り替えてください。それ以降はまた2桁の年は常に西暦の下2桁であると見なして、うるう年チェックが行われるようになります。
また画面及びアプリケーションプログラムの改造を必要としますが、2000年対応バージョンの トリプル・アイ には西暦4桁表現機能もあります。
◎ 画面用トリプル・アイの2000年対応バージョン |
1.「トリプル・アイ」(各機種DOS用) |
S2.62以降が2000年対応バージョンです。 バージョンの確認はPSRUN常駐メッセージで行えます。 ※S2.00(1989/1/20出荷)以前のバージョンは/Uパラメータ が使えません。基本的にバージョンアップが必要です。 |
2.トリプル・アイ/2 (OS/2用) |
S1.31以降が2000年対応バージョンです。 バージョンの確認は実行画面のシステムメニューで行えます。 |
3.トリプル・アイ/Win (Win32用) |
全てのバージョンが2000年対応済みです。 |
|
■ ■ ■ |
b. 帳票用トリプル・アイでの問題
2000年未対応バージョンでは、日付用特殊レジスター(#DATE、#YEAR)を代入元とするフィールドが存在し、かつ -H パラメータにより和暦表示を指定されている場合、2000年以降の年表示が 0 になってしまいます。 これを回避するには、2000年対応バージョンにバージョンアップしていただくか、西暦表示に変更していただく必要があります。
2000年対応バージョンは、上記の他「西暦下2桁表現時に1桁目をゼロサプレスしない」、という変更が加えられています。また、西暦を4桁で表現する機能も追加されています。
◎ 帳票用トリプル・アイの2000年対応バージョン |
1.「トリプル・アイ」(各機種DOS用) |
R1.90以降が2000年対応バージョンです。 バージョンの確認はPRRUN.EXEの起動メッセージで行えます。 |
2.トリプル・アイ/2 (OS/2用) |
帳票用の商品は存在しません。 |
3.トリプル・アイ/Win (Win32用) |
帳票用の商品は存在しません。 |
※ バージョンアップなどにつきましては個別にご相談ください。
E-mail:
▲トップへ
|
■ トリプル・アイ /Ux パラメータ及び閏年判定の詳細 |
画面用トリプル・アイは入力字種'Y'が指定されたフィールドに対し日付としての妥当性のチェックを行います。 (13月や、1月32日、4月31日という日付は存在しないのでエラーとして入力を拒絶する機能)
2月以外はその月に何日まで存在するかは、それが西暦であれ和暦であれ必ず決まっていますが、2月だけは閏年かどうかで29日が存在するかどうかが変わります。そのためその年が閏年かどうかの判定が必要になります。
年が4桁で表されている場合はそのままの西暦と判断しますので問題ありませんが、年表現が2桁である場合、それが西暦の下2桁なのか和暦なのか、和暦でも昭和か平成か、西暦でも特に00年に関しては1900年か2000年かによってそれが閏年かそうでないかの判定が変わります。(※1900年は閏年では無く、2000年は閏年である)
☆ (西暦の閏年判定式)
1.4で割り切れる年は閏年である。(4年、1904年、1996年、2004年等)
2.1、に該当しても100でも割り切れる年は閏年では無い。(100年、1900年、2100年等)
3.2、に該当しても400でも割り切れる年は閏年である。(400年、1600年、2000年等)
そこでトリプル・アイでは2桁の年表現時にそれがいったい何暦を表しているのかをPSRUNに対するパラメータで指示していただくことになっています。そのパラメータが/Uxパラメータです。
具体的には以下の通り、/Uというキーワード及びそれに続く1桁の数字によって2桁の年に対し異なる解釈を行います。
パラメータ |
機能 |
/U0(または無指定)
|
00年 |
西暦1900年とみなす。 |
01年〜79年 |
昭和とみなす。 |
80年〜99年 |
西暦とみなす。 |
|
/U1
|
00年 |
西暦1900年とみなす。 |
その他の年 |
西暦とみなす。 |
|
/U2
|
うるう年判定を行わない。
(2月は必ず29日まで入力できる。)
|
/U3
|
00年 |
西暦1900年とみなす。 |
01年〜19年 |
平成とみなす。 |
20年〜79年 |
昭和とみなす。 |
80年〜99年 |
西暦とみなす。 |
|
/U4
|
00年 |
西暦2000年とみなす。 |
その他の年 |
西暦とみなす。 |
|
/U5
※
|
00年 |
西暦1988年(昭和63年)とみなす。 |
その他の年 |
平成とみなす。 |
|
この内の/U4パラメータが使用できるバージョンを、トリプル・アイでは2000年対応バージョンと呼んでいます。
DOS版においては、S2.62以降、OS/2版ではS1.31以降、Windows版では全てのバージョンにおいて/U4の指定が可能です。また、2000年対応バージョンには、西暦を4桁で表現できる機能もあります。
西暦を4桁表現で使用されている場合は、/Uxパラメータは意味を持ちません。もし指定がされていても、これを無視します。西暦を2桁表現でご使用の場合、一般的には/U4パラメータを使用することで2000年問題は回避できます。これはWindows版(トリプル・アイ/Win)の最新バージョンにおいても同様(/U4パラメータがなければ、00年はあくまでも1900年とみなします)であることにご注意ください。
2000年未対応バージョンで00年2月29日の入力を許可したい場合は、/U2パラメータで閏年チェックを解除してください。
/U4、/U5を除く/Uxパラメータは、DOS版のS2.00(1989/01/20出荷)以降のDOS版の全てのバージョンで使えます。OS/2版、Windows版は発売以来の全てのバージョンで使えます。 S2.00未満のDOS版は常に/U0指定時相当の動作を行います。このバージョンをお使いのお客様は、2000年以降は日付属性フィールドの使用を諦めるかバージョンアップを行ってください。
※ /U5パラメータは、バージョン3.51(2008/2/4リリース)で提供したWindows版専用の機能です。3.50以前のWindows版の各バーション、ならびにDOS版、OS/2版では使用できません。
※ バージョンアップなどにつきましては個別にご相談ください。
E-mail:
▲トップへ
|