TZ_DST構造体は、TZwithDST構成要素の配列です。これらの各構成要素では、タイムゾーン文字列とそれに関連するルールを記述します。TZwithDST構造体の定義は、次のとおりです。
typedef struct TZwithDST { CHARACTER_LATIN tzstring[TZSTRINGSIZE]; int number_of_rules; DSTRules TZRules[TZRulesEntries]; SMALLINT Standardtzdispl_hour; SMALLINT Standardtzdispl_minute; } TZwithDST;
説明:
フィールド | 説明 |
---|---|
tzstring | タイムゾーン文字列の名前。例えば、"America Pacific"。 タイムゾーン文字列の最大長は130バイトです。 |
number_of_rules | このタイムゾーン文字列に関連するルールの数。各タイムゾーン文字列には、最大6つのルールが許可されています。 |
TZRules | ルールを記述する各DSTRules構成要素の配列です。これらのルールは、タイムゾーン文字列のタイムゾーン変位を計算するために使用されます。 |
Standardtzdispl_hour | 標準タイムゾーン変位の時間です。 |
Standardtzdispl_minute | 標準タイムゾーン変位の分です。 |
TZRules配列の各DSTRules構成要素では、タイムゾーン文字列のルールを記述します。DSTRules構造体の定義を示します。
typedef struct DSTRules { startendDSTInfo startDST; startendDSTInfo endDST; yearDisplInfo validyrs; } DSTRules;
説明:
フィールド | 説明 |
---|---|
startDST | 夏時間(DST)を開始する日付と時間を指定します。 |
endDST | 夏時間(DST)を終了する日付と時間を指定します。 |
validyrs | DSTの開始日と終了日を適用する年を指定します。この年範囲に関連する情報には、以下の項目があります。
|
startDSTとendDSTには、以下の項目を設定できます。該当しないフィールドには、0を入力してください。
フィールド | 説明 |
---|---|
rule_type | DSTの開始日と終了日の指定方法を示します。有効な値は次のとおりです。
|
month | DSTを開始または終了する月。有効な値は0~12です。このフィールドは、rule_type 1、2、3および4で使用します。 例えば、タイムゾーン文字列'America Pacific'の場合、開始日のルールは3月8日の後の最初の日曜日なので、startDST構造体のこのフィールドの値は、3月を表現する3になります。 |
day_of_month | rule_typeが1の場合、このフィールドにはDSTを開始または終了する月の日付を指定します。例えば、DSTが、ローカル タイムで8月21日の午前12:00に終了する場合、endDST構造体のこのフィールドには値21が格納されます。 rule_typeが4の場合、このフィールドで指定した日付の次の週日または直後の日に、DSTを開始または終了します。例えば、タイムゾーン文字列'America Pacific'の場合、開始日のルールは3月8日の後の最初の日曜日なので、startDST構造体のこのフィールドには値8が格納されます。 rule_typeが0、2または3の場合、このフィールドは使用されず、値は0になります。 |
day_of_week | 有効な値は0~7です。それぞれで日曜日から土曜日を表わします。このフィールドは、rule_type 2、3および4で使用します。 例えば、タイムゾーン文字列'America Pacific'の場合、開始日のルールは3月8日の後の最初の日曜日なので、startDST構造体のこのフィールドの値は、日曜日を表現する0になります。 |
week_of_month | 有効な値は、1、2、3、4、5、-1および-2です。それぞれ、最初の週日、2番目の週日、3番目の週日、4番目の週日、5番目の週日、最後の週日、および最後から2つ前の週日を表現しています。このフィールドは、rule_type 2および3で使用します。 例えば、タイムゾーン文字列'Europe Azores'の場合、開始日のルールは、3月の最終日曜日になるので、startDST構造体のこのフィールドの値は、月の最後の週を表現する-1になります。 |
loctime | DSTを開始または終了するローカル タイムです。 例えば、"02:00:00"は、ローカル タイムの午前2:00にDSTを開始または終了すること示します。 |