Palm Programmer's Laboratory

トップ 差分 一覧 ソース 検索 ヘルプ RSS ログイン

Palm OS Programmer's API Reference/57

← 56 章に戻る? ↑トップへ 58 章に進む →?



この章の索引


57 タイム マネージャ

この章ではタイム マネージャのための参照資源を提供します。

ヘッダ ファイル DateTime.h がこの章で説明する API を宣言しています。タイム マネージャについての追加情報は、Palm OS Programmer's Companion, vol. I「時刻」を参照してください。

タイム マネージャ データ構造体 ^TOP^

DateFormatType 列挙体 ^TOP^

目的

DateFormatType 列挙体は、日付値に対して、それぞれ異なるディスプレイ フォーマットを指定します。

Prototype

typedef enum {
	dfMDYWithSlashes,
	dfDMYWithSlashes,
	dfDMYWithDots,
	dfDMYWithDashes,
	dfYMDWithSlashes,
	dfYMDWithDots,
	dfYMDWithDashes,
	dfMDYLongWithComma,
	dfDMYLong,
	dfDMYLongWithDot,
	dfDMYLongNoDay,
	dfDMYLongWithComma,
	dfYMDLongWithDot,
	dfYMDLongWithSpace,
	dfMYMed,
	dfMYMedNoPost,
	dfMDYWithDashes
} DateFormatType;

定数

  • dfMDYWithSlashes
    • スラッシュで分けられた月、日、年の数。例えば、12/31/95
      これはショート フォーマットと考えられます。
  • dfDMYWithSlashes
    • スラッシュで分けられた日、月、年の数。例えば、31/12/95
      これはショート フォーマットと考えられます。
  • dfDMYWithDots
    • ドットで分けられた日、月、年の数。例えば、31.12.95
      これはショート フォーマットと考えられます。
  • dfDMYWithDashes
    • ダッシュで分けられた日、月、年の数。例えば、31-12-95
      これはショート フォーマットと考えられます。
  • dfYMDWithSlashes
    • スラッシュで分けられた年、月、日の数。例えば、95/12/31
      これはショート フォーマットと考えられます。
  • dfYMDWithDots
    • ドットで分けられた年、月、日の数。例えば、95.12.31
      これはショート フォーマットと考えられます。
  • dfYMDWithDahes
    • ダッシュで分けられた年、月、日の数。例えば、95-12-31
      これはショート フォーマットと考えられます。
  • dfMDYLongWithComma
    • 月、日、年のカンマを持つロング フォーマット。例えば、Dec 31, 1995
      これはロング フォーマットと考えられます。
  • dfDMYLong
    • 日、月、年のロング フォーマット。例えば、31 Dec 1995
      これはロング フォーマットと考えられます。
  • dfDMYLongWithDot
    • 日、月、年のドットを持つロング フォーマット。例えば、31. Dec 1995
      これはロング フォーマットと考えられます。
  • dfDMYLongNoDay
    • 月、年のロング フォーマット。例えば、Dec 1995
      これはロング フォーマットと考えられます。
  • dfDMYLongWithComma
    • 日、月、年のカンマを持つロング フォーマット。例えば、31 Dec, 1995
      これはロング フォーマットと考えられます。
  • dfYMDLongWithDot
    • 年、日、月のドット セパレータを持つロング フォーマット。例えば、1995.12.31
      これはロング フォーマットと考えられます。
  • dfYMDLongWithSpace
    • 年、月、日のスペース セパレータを持つロング フォーマット。例えば、1995 Dec 31
      これはロング フォーマットと考えられます。
  • dfMYMed
  • 先にアポストロフィが付いた 2 桁の年を持つロング フォーマットの月。例えば、Dec '95
    これはロング フォーマットと考えられます。
  • dfMYMedNoPost
  • 2 桁の年を持つロング フォーマットの月。例えば、Dec 95
    これはミディアム フォーマットと考えられます。
  • dfMDYWithDashes
  • ダッシュで分けられた月、日、年。例えば、12-31-5
    これはショート フォーマットと考えられます。

互換性

dfMDYWithDashes 定数は、Palm OS 4.0 以降で定義されます。

DateTimeType 構造体 ^TOP^

目的

DateTimeType 構造体は日付と時刻の値を表します。

Prototype

typedef struct{
	Int16 second;
	Int16 minute;
	Int16 hour;
	Int16 day;
	Int16 month;
	Int16 year;
	Int16 weekDay;
} DateTimeType

typedef DateTimeType *DateTimePtr;

フィールド

  • second
    • 秒の数。これは 0 から 59 までの値です。
  • minute
    • 分の数。これは 0 から 59 までの値です。
  • hour
    • 時の数。これは 0 から 23 までの値です。
  • day
    • 日の数。これは 1 から 31 までの値です。
  • month
    • 月の数。これは 1 から 12 までの値です。
  • year
    • 年の数。
  • weekday
    • 日数。これは日曜日からの日数を表します。つまり、0 から 6 までの値です。

DateType 構造体 ^TOP^

目的

DateType 構造体は日付の値を表します。

Prototype

typedef struct{
	UInt16 year :7;
	UInt16 month:4;
	UInt16 day:5;
} DateType;

typedef DateType *DatePtr;

フィールド

  • yaer
    • 1904 からの年の数。
      これはマッキントッシュ コンピュータで使用されるフォーマットです。
  • month
    • 月の数。これは 0 から 12 までの値です。
  • day
    • 日の数。これは 1 から 31 までの値です。

DaylightSavingsType 列挙体 ^TOP^

目的

DaylightSavingsTypes 列挙体は、日付と時刻の値を指定できる夏時間のそれぞれ異なるフォームを指定します。

テーブルは、夏時間を表すために、"DST" を使用するということに注意してください。

Prototype

typedef enum {
	dsNone,
	dsUSA,
	dsAustralia,
	dsWesternEuropean,
	dsMiddleEuropean,
	dsEasternEuropean,
	dsGreatBritain,
	dsRumania,
	dsTurkey,
	dsAustraliaShifted
} DaylightSavingsTypes;

定数

  • dstNone
    • DST (daylight savings time) 無し
  • dstUSA
    • アメリカ合衆国 DST
  • dstAustralia
    • オーストラリア DST
  • dstWesternEuropean
    • 西ヨーロッパ DST
  • dstMiddleEuropean
    • 中央ヨーロッパ DST
  • dstEasternEuropean
    • 東ヨーロッパ DST
  • dstGreatBritain
    • イギリスとアイルランド DST
  • dstRumania
    • ルーマニア DST
  • dstTurkey
    • トルコ DST
  • dstAustraliaShifted
    • 1986 シフトでのオーストラリア DST(訳者注: 夏時間の施行方法はいろいろあるらしい)

互換性

4.0 New Feature Set を満たす場合、このデータ タイプは旧式のものになります。バージョン 4.0 以降では、Palm OS は夏時間を、夏時間を求めるために現在の時刻に加える分数(the number of minutes)である整数で表します。

DayOfMonthType 列挙体 ^TOP^

目的

DayOfMonth 列挙体は、DayOfMonth() 関数によって返される、それぞれに異なる週の日の数値を指定します。これらの値は、月の特定の日に繰り返し起こるアポイントメントを表すのに使用されます。例えば、各月の最初の金曜日であるとか、3 番目の火曜日のことです。

Prototype

typedef enum {
	dom1stSun, dom1stMon, dom1stTue, dom1stWen,
	dom1stThu, dom1stFri, dom1stSat,
	dom2ndSun, dom2ndMon, dom2ndTue, dom2ndWen,
	dom2ndThu, dom2ndFri, dom2ndSat,
	dom3rdSun, dom3rdMon, dom3rdTue, dom3rdWen,
	dom3rdThu, dom3rdFri, dom3rdSat,
	dom4thSun, dom4thMon, dom4thTue, dom4thWen,
	dom4thThu, dom4thFri, dom4thSat,
	domLastSun, domLastMon, domLastTue,
	domLastWen, domLastThu, domLastFri,
	domLastSat
} DayOfWeekType;

定数

  • dom1stSun
    • 月の最初の日曜日
  • dom1stMon
    • 月の最初の月曜日
  • dom1stTue
    • 月の最初の月曜日
  • dom1stWen
    • 月の最初の水曜日
  • dom1stThu
    • 月の最初の木曜日
  • dom1stFri
    • 月の最初の金曜日
  • dom1stSat
    • 月の最初の土曜日
  • dom2ndSun
    • 月の 2 番目の日曜日
  • dom2ndMon
    • 月の 2 番目の月曜日
  • dom2ndTue
    • 月の 2 番目の月曜日
  • dom2ndWen
    • 月の 2 番目の水曜日
  • dom2ndThu
    • 月の 2 番目の木曜日
  • dom2ndFri
    • 月の 2 番目の金曜日
  • dom2ndSat
    • 月の 2 番目の土曜日
  • dom3rdSun
    • 月の 3 番目の日曜日
  • dom3rdMon
    • 月の 3 番目の月曜日
  • dom3rdTue
    • 月の 3 番目の月曜日
  • dom3rdWen
    • 月の 3 番目の水曜日
  • dom3rdThu
    • 月の 3 番目の木曜日
  • dom3rdFri
    • 月の 3 番目の金曜日
  • dom3rdSat
    • 月の 3 番目の土曜日
  • dom4thSun
    • 月の 4 番目の日曜日
  • dom4thMon
    • 月の 4 番目の月曜日
  • dom4thTue
    • 月の 4 番目の月曜日
  • dom4thWen
    • 月の 4 番目の水曜日
  • dom4thThu
    • 月の 4 番目の木曜日
  • dom4thFri
    • 月の 4 番目の金曜日
  • dom4thSat
    • 月の 4 番目の土曜日
  • domLastSun
    • 月の最後の日曜日
  • domLastMon
    • 月の最後の月曜日
  • domLastTue
    • 月の最後の月曜日
  • domLastWen
    • 月の最後の水曜日
  • domLastThu
    • 月の最後の木曜日
  • domLastFri
    • 月の最後の金曜日
  • domLastSat
    • 月の最後の土曜日

互換性

Palm OS 4.0 より前では、この型は DayOfWeekType という名前でした。

TimeFormatType 列挙体 ^TOP^

目的

TimeFormatType 列挙体は時刻の値のそれぞれ異なるディスプレイ フォーマットを指定します。

Prototype

typedef enum {
	tfColon,
	tfColonAMPM,
	tfColon24h,
	tfDot,
	tfDotAMPM,
	tfDot24h,
	tfHoursAMPM,
	tfHours24h,
	tfComma24h,
} TimeFormatType;

typedef TimeFormatType *TimeFormatPtr;

定数

  • tfColon
    • コロン文字で分けられた時と分。例えば、1:00
  • tfColonAMPM
    • AP/PM が後に続くコロン文字で分けられた時と分。例えば、1:00 pm
  • tfColon24h
    • コロン文字で分けられた時と分を持つ 24 時間時刻。例えば、13:00
  • tfDot
    • ドット文字で分けられた時と分。例えば、1.00
  • tfDotAMPM
    • AP/PM が後に続くドット文字で分けられた時と分。例えば、1.00 pm
  • tfDot24h
    • ドット文字で分けられた時と分を持つ 24 時間時刻。例えば、13.00
  • tfHoursAMPM
    • AP/PM が後に続くドット文字で分けられた時。例えば、1 pm
  • tfHours24h
    • 24 時間の時。例えば、13
  • tfComma24h
    • カンマ文字で分けられた時と分を持つ 24 時間時刻。例えば、13

TimeType 構造体 ^TOP^

目的

TimeType 構造体は時刻の値を表します。

Prototype

typedef struct {
	UInt8   hours;
	UInt8   minutes;
} TimeType;

typedef TimeType *TimePtr;

フィールド

  • hours
    • 時の数。この値は 0 から 23 までです。
  • minutes
    • 分の数。この値は 0 から 59 までです。

タイム マネージャ定数 ^TOP^

以下に示す表で、日付と時刻フォーマット ルーチン DateToAscii(), DateToDOWDMFormat, TimeToAscii() によって返される文字列の最大長を表す定数を示します。

定数 説明
dateStringLength 9 DateToAscii によって返されるショート日付フォーマットの文字列の最大長
longDateStringLength 15 DateToAscii によって返されるロング日付フォーマットの文字列の最大長
timeStringLength 15 TimeToAscii によって返される文字列の最大長
dowDateStringLength 19 DateToDOWDMFormat によって返されるショート日付フォーマットの文字列の最大長
dowLongDateStringLength 25 DateToDOWDMFormat によって返されるミディアムとロング日付フォーマット両方の文字列の最大長

タイム マネージャ関数 ^TOP^

目的

日を +/- して調節した新しい日付を返します。

宣言されている場所

DateTime.h

Prototype

void DateAdjust (
	DateType *dateP,
	Int32 adjustment
)

パラメータ

  • ←→ dateP
    • 調節される日付を持つ DateType 構造体へのポンタ
  • → adjustment
    • 日付を調節するための日の数

返り値

返り値はありません。返るとき、dateP が調節された日付を保持しています。

コメント

この関数は日付を進め、状況を保持している月と年を管理します。

参照

TimeAjust()

DateDaysToDate 関数 ^TOP^

目的

1904 年 1 月 1 日からの日数として指定された日付を DateType 構造体に変換します。

宣言されている場所

DateTime.h

Prototype

void DateDaysToDate (
	UInt32 days,
	DateType *dateP
)

パラメータ

  • → days
    • 1904 年 1 月 1 日からの日数
  • ← dateP
    • 計算された日付の値で更新される DateType 構造体へのポインタ

返り値

返り値はありません。返るとき、日付情報は dateP パラメータによって参照される構造体の中に収めされて返されます。

参照

DateSecondsToDate(), DateToDays()

DateSecondsToDate 関数 ^TOP^

目的

1904 年 1 月 1 日からの秒数として指定された日付を DateType 構造体に変換します。

宣言されている場所

DateTime.h

Prototype

void DateSecondsToDate (
	UInt32 seconds,
	DateType *dateP
)

パラメータ

  • → seconds
    • 1904 年 1 月 1 日からの秒数
  • ← dateP
    • 計算された日付の値で更新される DateType 構造体へのポインタ

返り値

返り値はありません。dateP パラメータによって参照される構造体は日付情報に更新されます。

参照

DateDaysToDate(), DateToDays()

DateTemplateToAscii 関数 ^TOP^

目的

指定された日付の値を、フォーマット テンプレート指定子に一致するフォーマットの文字列に変換します。

宣言されている場所

DateTime.h

Prototype

UInt16 DateTemplateToAscii (
	const Char *templateP,
	UInt8 months,
	UInt8 days,
	UInt16 years,
	Char *stringP,
	Int16 stringLen
)

パラメータ

  • → templateP
    • 日付をフォーマットするのに使用されるテンプレート文字列へのポインタ。
      どのようにこのテンプレート文字列の中の日付フォーマットを指定するかについての詳細は、以下のコメントを参照してください。
  • → months
    • 月の数。この値は 1 から 12 までの値でなければなりません。
  • → days
    • 日の数。この値は 1 から 31 までの値でなければなりません。
  • → years
    • 4 桁の年の数。例えば、1995
  • ← stringP
    • 結果で更新される文字列へのポインタ。
      stringPNULL の場合、この関数は出力文字列を書き込みません。しかし、出力文字列の長さを返します。
      stringPNULL ではない場合、この関数はフォーマットされた文字列を stringP に書き込みます。最大 stringLen バイト stringP に書き込みます。
  • → stringLen
    • stringP バッファのサイズ。

返り値

フォーマットされた文字列の、終端 null のバイトを含めない、長さを返します。

DateTemplateToAscii は、たとえ stringP パラメータが NULL の場合でも、フォーマットされた文字列の長さを返します。これにより、ランタイムでバッファ サイズを決定することが可能になります。

コメント

この関数は、DateToAscii()DateToDOWDMFormat() 関数を置き換えることを意図した関数です。

この関数は、渡された日付の値からフォーマットされた文字列を作成するために、templateP によって参照されるフォーマット テンプレートを使用します。

templateP で一連のフォーマット部分文字列を指定します。各部分文字列は以下のフォームを持ちます。


  ^<valueType><formatModifier>


各部分文字列は 3 つの構成要素を持ちます。

  • ^ 文字が部分文字列の開始です。
  • <valueType> 構成要素は、値のタイプを指定する 1 桁の数です。
  • <formatModifier> 構成要素は、値をどのようにフォーマットするか指定する 1 個の文字です。

以下に示すのは、3 つの部分文字列を持つテンプレート指示子の例です。

  ^0z ^2l ^4r

表 57.1<valueType> 構成要素に指定できる値を示します。フォーマットされる結果は <modifier> 値に依存するということに注意してください。


表 57.1 DateTemplateToAscii 関数のためのテンプレート値

値のタイプ フォーマット結果の例
0 日の数 1, 01, 23, 31
1 日の名前(訳者注: 曜日) Tue, Tuesday
2 月の名前 May, Aug, August
3 月の数 4, 04, 11
4 年の数 97, 1997

表 57.2 は各テンプレート部分文字列の <modifier> 構成要素に指定できる値を示します。


表 57.2 DateTemplateToAscii 関数のためのテンプレート 修飾子のタイプ

修飾子 説明
s 値をショート フォームにフォーマットします。
r 値を標準フォームにフォーマットします。
l 値をロング フォームにフォーマットします。
z フォーマットされた数値の頭に 0 を追加します。

最後に、表 57.3 は修飾子タイプでフォーマットされた各値のタイプの例を示します。


表 57.3 フォーマットされた値の例

値のタイプ 元の値 s
(ショート フォーマット)
r
(標準フォーマット)
l
(ロング フォーマット)
z
(0 フォーマット)
0
(日の数)
2 2 2 2 02
1
(日の名前(訳者注: 曜日))
2 T Tue Tuesday 使用できません
2
(月の名前)
11 N Nov November 使用できません
3
(月の数)
11 11 11 11 11
4
(年の数)
2000 00 2000 2000 使用できません

例えば、以下のように DateTemplateToAscii 呼び出しを行います。

DateTemplateToAscii("^0z ^2l ^4r", 2, 7,
  2000, myStr, 20)

以下のフォーマットされた文字列が作成されます。

  07 February 2000

互換性

3.5 New Feature Set を満たす場合にのみ、実装されます。それより前の Palm OS バージョンで実行させることを意図したコードの中でこの関数を使用するには、PalmOSGlue ライブラリへリンクして、DateGlueTemplateToAscii を呼び出します。追加情報は、第 80 章 「PalmOSGlue ライブラリ」? を参照してください。

参照

DateToAscii(), DateToDOWDMFormat()

DateToAscii 関数 ^TOP^

目的

渡された日付を、dateFormat パラメータで指定されたフォーマットを使って、文字列に変換します。

宣言されている場所

DateTime.h

Prototype

void DateToAscii (
	UInt8 months,
	UInt8 days,
	UInt16 years,
	DateFormatType dateFormat,
	Char *pString
)

パラメータ

  • → months
    • 月の数。この値は 1 から 12 までの値でなければなりません。
  • → days
    • 日の数。この値は 1 から 31 までの値でなければなりません。
  • → years
    • 4 桁の年の数。例えば、1995。*→ dateFormat
    • いずれかの DateFormatType フォーマット。
  • ← pString
    • 結果で更新される文字列へのポンタ
      個の文字列の長さは、ショート フォーマットでは dateStringLength、ミディアムまたはロング フォーマットでは longDateStrLength でなければなりません。これらの長さは終端の null バイトを含むということに注意してください。要求される文字列の長さについての追加情報は、タイム マネージャ定数 を参照してください。

返り値

返り値はありません。pString で参照される文字列がフォーマットされた文字列で更新されます。

コメント

デバッグ ROM を使用している場合、文字列バッファは dateStringLength または longStrLength のデバッグ バイトで埋められます。デバッグ ROM を使用している場合、バッファ オーバフロー エラーを見つけることは困難である可能性があります。1 つの共通の状況は、フォームから取り出した非常に小さなバッファ -- ラベルやタイトルなどの要素のための -- を渡した場合です。その場合、バッファ オーバフローはメモリの中でフォームの後に続いているオブジェクトを消し去ります。フォーム要素の位置情報が破壊されると、その要素はディスプレイから消えます。

3.5 feature set が満たされる(存在する)場合、この関数の代わりに DateTemplateToAscii() を使用できることに注意してください。バッファに要求されるサイズをあらかじめ決定するために、NULL 文字列バッファと一緒に DateTemplateToAscii() を呼び出すことができます。

参照

TimeToAscii(), DateToDOWDMFormat(), DateTemplateToAscii()

DateToDays 関数 ^TOP^

目的

DateType 構造体を 1904 年 1 月 1 日からの経過時間としての日数に変換します。

宣言されている場所

DateTime.h

Prototype

UInt32 DateToDays (
	DateType date
)

パラメータ

返り値

1904 年 1 月 1 日から指定された date までの経過時間としての日数を返します。

参照

DateDaysToDate()

DateToDOWDMFormat 関数 ^TOP^

目的

日付を、dateFormat パラメータで指定されたフォーマットを使って、フォーマットされた文字列に変換します。結果の文字列は週の日の名前(訳者注: 曜日)を含みます。

宣言されている場所

DateTime.h

Prototype

void DateToDOWDMFormat (
	UInt8 months,
	UInt8 days,
	UInt16 years,
	DateFormatType dateFormat,
	Char *pString
)

パラメータ

  • → months
    • 月の数。この値は 1 から 12 までの値でなければなりません。
  • → days
    • 日の数。この値は 1 から 31 までの値でなければなりません。
  • → years
    • 4 桁の年の数。例えば、1995
  • → dateFormat
  • ← pString
    • 結果で更新される文字列へのポインタ。この文字列の長さは、ショート ファーマットであれば dowDateStringLength、ミディアムまたはロング フォーマットであれば dowLongDateStringLength でなければなりません。文字列バッファの長さについては、タイム マネージャ定数 を参照してください。

返り値

返り値はありません。pString で参照される文字列は、フォーマットされた文字列で更新されます。

コメント

要求される文字列バッファの長さを指定する タイム マネージャ定数 のいくつかの値はその時その時で変化します。常に定数を使用するか、datetime.h ファイルをチェックすることで要求される長さを確かめるべきです。

文字列バッファに十分な空き容量を割り当てることが重要です。デバッグ ROM を使用している場合、バッファ オーバフロー エラーを見つけることは困難である可能性があります。1 つの共通の状況は、フォームから取り出した非常に小さなバッファ -- ラベルやタイトルなどの要素のための -- を渡した場合です。その場合、バッファ オーバフローはメモリの中でフォームの後に続いているオブジェクトを消し去ります。フォーム要素の位置情報が破壊されると、その要素はディスプレイから消えます。

3.5 feature set が満たされる(存在する)場合、この関数の代わりに DateTemplateToAscii() を使用できることに注意してください。バッファに要求されるサイズをあらかじめ決定するために、NULL 文字列バッファと一緒に DateTemplateToAscii() を呼び出すことができます。

互換性

Palm OS 3.1 日本語 ROM では、この関数には 4 バイト長の日の名前(訳者注: 曜日)を適切に表示しないというバグがあります。このバグが作成するアプリケーションに影響を与えることを避けるために、この関数を直接呼び出す代わりに、PalmOSGlue ライブラリの中の DateGlueToDOWDMFormat を使用してください。追加情報は、第 80 章 「PalmOSGlue ライブラリ」?を参照してください。

参照

DateToAscii(), DateTemplateToAscii()

DayOfMonth 関数 ^TOP^

目的

指定された日付が存在する月の日を表す値を返します。値は「最初の月曜日」や「3 番目の金曜日」などの予定表の中の繰り返すアポイントメントに使用される数を表します。

宣言されている場所

DateTime.h

Prototype

Int16 DayOfMonth (
	Int16 month,
	Int16 day,
	Int16 year
)

パラメータ

  • → month
    • 月の数。この値は 1 から 12 までの値でなければなりません。
  • → day
    • 日の数。この値は 1 から 31 までの値でなければなりません。
  • → year
    • 4 桁の年の数。例えば、1995

返り値

その月の日を表す値を返します。この値は DayOfMonthType 値の 1 つです。

コメント

返される値は、繰り返すアポイントメントが位置するその月の日を指定するのに使用することができます。

DayOfWeek 関数 ^TOP^

目的

指定された日付の週の曜日を返します。

宣言されている場所

DateTime.h

Prototype

Int16 DayOfWeek (
	Int16 month,
	Int16 day,
	Int16 year
)

パラメータ

  • → month
    • 月の数。この値は 1 から 12 までの値でなければなりません。
  • → day
    • 日の数。この値は 1 から 31 までの値でなければなりません。
  • → year
    • 4 桁の年の数。例えば、1995

返り値

以下の表で示す指定された日付の週の曜日のための値の 1 つを返します。

曜日 返される日の値
日曜日 0
月曜日 1
火曜日 2
水曜日 3
木曜日 4
金曜日 5
土曜日 6

DaysInMonth 関数 ^TOP^

目的

月の日数を返します。

宣言されている場所

DateTime.h

Prototype

Int16 DaysInMonth (
	Int16 month,
	Int16 year
)

パラメータ

  • → month
    • 月の数。この値は 1 から 12 までの値でなければなりません。
  • → year
    • 4 桁の年の数。例えば、1995

返り値

指定された年と月の日数を返します。

TimeAdjust 関数 ^TOP^

目的
指定された秒数で調節された時刻を持つ新しい日付を返します。

宣言されている場所

DateTime.h

Prototype

void TimAdjust (
	DateTimeType *dateTimeP,
	Int32 adjustment
)

パラメータ

  • ←→ dateTimeP
  • → adjustment
    • 時刻を調節するための秒数

返り値

返り値はありません。dateTimeP で参照される構造体は、更新された日付と時刻を保持するように更新されます。

コメント

この関数は指定された秒数の分だけ時刻を進め、すべての回り込み条件(訳者注: ?原文は any wraparound conditions)に気を配ります。

参照

DateAdjust()

TimeDateTimeTiSeconds 関数 ^TOP^

目的

1904 年 1 月 1 日午前 12:00 時から指定された日付と時刻までの経過秒数を返します。

宣言されている場所

DateTime.h

Prototype

UInt32 TimDateTimeToSeconds (
	const DateTimeType *dateTimeP
)

パラメータ

返り値

1904 年 1 月 1 日午前 12:00 時から dateTimeP によって参照される日付までの経過秒数を返します。

参照

TimSecondsToDateTime()

TimeGetSeconds 関数 ^TOP^

目的

デバイスの現在の日付と時刻を 1904 年 1 月 1 日午前 12:00 時からの秒数で返します。
宣言されている場所

DateTime.h

Prototype

UInt32 TimGetSeconds (
	void
)

パラメータ

ありません。

返り値

1904 年 1 月 1 日午前 12:00 時からデバイスの現在の日付と時刻までの経過秒数を返します。

参照

TimeSetSeconds()

TimeGetTicks 関数 ^TOP^

目的

最後のリセットからのチェック カウントを返します。チェック カウントは、デバイスがスリープ モードに入っている間は進みません。

宣言されている場所

DateTime.h

Prototype

UInt32 TimGetTicks (
	void
)

パラメータ

ありません。

返り値

チェック カウントを返します。

コメント

SysTicksPerSecond()|Palm OS Programmer's API Reference/54 ルーチンを呼び出すことで 1 秒毎のチェック数を決定することができます。

参照

SysTicksPerSecond()|Palm OS Programmer's API Reference/54

TimeSecondsToDateTime 関数 ^TOP^

目的

1904 年 1 月 1 日からの秒数として指定された日付を DateTimeType 構造体に変換します。

宣言されている場所

DateTime.h

Prototype

void TimSecondsToDateTime (
	UInt32 seconds,
	DateTimeType *dateTimeP
)

パラメータ

  • → seconds
    • 1904 年 1 月 1 日午前 12:00 時から日付までの経過秒数として指定される日付
  • ← dateTimeP
    • 日付と時刻の値で更新される DateTimeType 構造体へのポインタ

返り値

返り値はありません。dateTimeP で参照される構造体は、1904 年 1 月 1 日午前 12:00 時からの秒数として計算された日付と時刻で更新されます。

参照

TimeDateTimeToSeconds()

TimeSetSeconds 関数 ^TOP^

目的

デバイスの時計を1904 年 1 月 1 日午前 12:00 時からの秒数として渡された日付と時刻にセットします。

宣言されている場所

DateTime.h

Prototype

void TimSetSeconds (
	UInt32 seconds
)

パラメータ

  • → seconds
    • 1904 年 1 月 1 日午前 12:00 時からの秒数

返り値

返り値はありません。

コメント

Notification Feature Set が満たされる(存在する)場合、この関数は sysNotifyTimeChageEvent をすべての関心を持つパーティーにブロードキャストします。追加情報は、第 43 章 「通知マネージャ」を参照してください。

参照

TimeGetSeconds()

TimeToAscii 関数 ^TOP^

目的

時刻を、指定された timeFormat に適切にフォーマットされた文字列に変換します。

宣言されている場所

DateTime.h

Prototype

void TimeToAscii (
	UInt8 hours,
	UInt8 minutes,
	TimeFormatType timeFormat,
	Char *pString
)

パラメータ

  • → hours
    • 時の数。この値は 0 から 23 までの値でなければなりません。
  • → minutes
    • 分の数。この値は 0 から 59 までの値でなければなりません。
  • → timeFormat
    • 結果の文字列のための時刻フォーマット。この値は TimeFormatType 値の 1 つでなければなりません。
  • ← pString
    • 結果の文字列で更新される文字列へのポインタ。この文字列の長さは timeStringLength でなければなりません。
      文字列バッファの長さについての情報は、タイム マネージャ定数を参照してください。

返り値

返り値はありません。pString によって参照される文字列は、フォーマットされた文字列で更新されます。

コメント

Palm OS 3.5 のデバッグ ROM を使用している場合、文字列バッファは timeStringLength のデバッグ バイトで埋められます。

文字列バッファに十分な空き容量を割り当てることが重要です。デバッグ ROM を使用している場合、バッファ オーバフロー エラーを見つけることは困難である可能性があります。1 つの共通の状況は、フォームから取り出した非常に小さなバッファ -- ラベルやタイトルなどの要素のための -- を渡した場合です。その場合、バッファ オーバフローはメモリの中でフォームの後に続いているオブジェクトを消し去ります。フォーム要素の位置情報が破壊されると、その要素はディスプレイから消えます。

参照

DateToAscii()

TimeZoneToAscii 関数 ^TOP^

目的

タイム ゾーンを文字列に変換します。

宣言されている場所

DateTime.h

Prototype

void TimeZoneToAscii (
	Int16 timeZone,
	const LmLocaleType *localeP,
	Char *string
)

パラメータ

  • → timeZone
    • グリニッジ標準時(GMT)から何分東かで与えられるタイム ゾーンへのポインタ
  • → localP
    • タイム ゾーン カントリを示すロケール(LmLocaleType を参照してください)へのポインタ。このパラメータによって指される構造体の言語フィールドの値として定数 lmAnyLaguage を使用することができます。
  • ← string
    • 結果が返される文字列へのポインタ。この文字列の長さは timeZoneStringLength でなければなりません。

返り値

返り値はありません。

コメント

この関数は指定されたタイム ゾーンのための記述文字列を返します。この文字列はタイム ゾーンをまず「USA (Mountain)」や「Canada (Eastern)」などのカントリと同定します。関数が指定された GMT オフセットとカントリに一致するタイム ゾーンを見つけられなかった場合、GMT からのオフセットとしてのタイム ゾーンを保持する文字列を返します(例えば、「GMT+9:00」)。

互換性

4.0 New Feature Set を満たす場合にのみ、実装されます。

TimeTimeZoneToUTC 関数 ^TOP^

目的

日付と時刻を、与えられたタイム ゾーンから Universal Coordinated Time (UTC) に変換します。UTC はグリニッジ標準時(GMT)としても知られます。

宣言されている場所

DateTime.h

Prototype

UInt32 TimTimeZoneToUTC (
	UInt32 seconds,
	Int16 timeZone,
	Int16 daylightSavingAdjustment
)

パラメータ

  • → seconds
    • 1904 年 1 月 1 日午前 12:00 時からの秒数
  • → timeZone
    • UTC の何分東かの数として与えられるタイム ゾーン。UTC の西から日付変更線までのタイム ゾーンでは、この値は負の数になります。
  • → daylightSavingAdjustment
    • このタイム ゾーンの中の夏時間のための現在の時刻に加えるための分数。

返り値

seconds の時刻を UCT で返します。この値はやはり1904 年 1 月 1 日午前 12:00 時からの秒数です。

コメント

返り値は必ずしもグリニッジ時刻ではありません。なぜなら、グリニッジは夏時間に入っているかもしれないからです。

この関数を時刻を UTC に変換するために使用することができます。タイム ゾーンと夏時間調節は、PrefGetPreference() を使って取得することができるシステム設定です。例えば、以下に示すコードは現在のローカル時刻を UTC に変換します。

Int16 timeZone = 
  PrefGetPreference(prefTimeZone);
Int16 daylightSavingAdjustment = 
  PrefGetPreference( 
  prefDaylightSavingAdjustment);
UInt32 utcTime = 
  TimTimeZoneToUTC(TimGetSeconds(), timeZone, 
  daylightSavingAdjustment);

互換性

4.0 New Feature Set を満たす場合にのみ、実装されます。

参照

TimeUTCToTimeZone()

TimeUTCToTimeZone 関数 ^TOP^

目的

日付と時刻を、Universal Coordinated Time (UTC) から指定されたタイム ゾーンに変換します。UTC はグリニッジ標準時(GMT)としても知られます。

宣言されている場所

DateTime.h

Prototype

UInt32 TimUTCToTimeZone (
	UInt32 seconds,
	Int16 timeZone,
	Int16 daylightSavingAdjustment
)

パラメータ

  • → seconds
    • UTC での 1904 年 1 月 1 日午前 12:00 時からの秒数
  • → timeZone
    • UTC の何分東かの数として与えられるタイム ゾーン。UTC の西から日付変更線までのタイム ゾーンでは、この値は負の数になります。
  • → daylightSavingAdjustment
    • このタイム ゾーンの中の夏時間のための現在の時刻に加えるための分数。

返り値

seconds の時刻を指定されたタイム ゾーンで返します。この値はやはり1904 年 1 月 1 日午前 12:00 時からの秒数です。
コメント

seconds 値は必ずしもグリニッジ時刻ではありません。なぜなら、グリニッジは夏時間に入っているかもしれないからです。

互換性

4.0 New Feature Set を満たす場合にのみ、実装されます。

参照

TimeTimeZoneToUTC()


← 56 章に戻る? ↑トップへ 58 章に進む →?