Instance Method インスタンスメソッド

components(_:from:to:options:)

Returns the difference between two supplied dates as date components. 2つの提供された日付の間の差を日付構成要素として返します。

Declaration 宣言

func components(_ unitFlags: NSCalendar.Unit, 
           from startingDate: Date, 
             to resultDate: Date, 
        options opts: NSCalendar.Options = []) -> DateComponents

Parameters パラメータ

unitFlags

Specifies the components for the returned NSDateComponents object. 返されるNSDateComponentsオブジェクトに対する構成要素を指定します。

startingDate

The start date for the calculation. 計算のための開始日付。

resultDate

The end date for the calculation. 計算のための終了日付。

options オプション

Options for the calculation. For possible values, see NSCalendar.Options. 計算に対するオプション。可能な値として、NSCalendar.Optionsを見てください。

If you specify a “wrap” option (wrapComponents), the specified components are incremented and wrap around to zero/one on overflow, but do not cause higher units to be incremented. When the wrap option is not specified, overflow in a unit carries into the higher units, as in typical addition. あなたが “wrap” オプション(wrapComponents)を指定するならば、指定された構成要素は漸増されて、オーバーフローに関して0/1ラップアラウンドをします、しかしより高位の単位の漸増を引き起こしません。ラップオプションが指定されない場合、ある単位におけるオーバーフローはより高位の単位にまで至ります、典型的な加算におけるように。

Return Value 戻り値

An NSDateComponents object whose components are specified by unitFlags and calculated from the difference between the resultDate and startDate using the options specified by options. Returns nil if either date falls outside the defined range of the receiver or if the computation cannot be performed. あるNSDateComponentsオブジェクト、それの構成要素はunitFlagsによって指定され、そしてresultDatestartDateの差からoptionsによって指定されるオプションを使って計算されます。nilを返します、もしどちらかの日付がレシーバの定義された範囲に収まらないならばまたは計算が実行できないならば。

Discussion 議論

The result is lossy if there is not a small enough unit requested to hold the full precision of the difference. Some operations can be ambiguous, and the behavior of the computation is calendar-specific, but generally larger components will be computed before smaller components; for example, in the Gregorian calendar a result might be 1 month and 5 days instead of, for example, 0 months and 35 days. The resulting component values may be negative if resultDate is before startDate. 結果は、差の完全な正確さを保持するために要求される十分に小さい単位がないならば、損失があります。いくつかの演算は曖昧である可能性があります、そして計算の挙動はカレンダー特有です、しかし一般的により大きい構成要素はより小さい構成要素の前に計算されるでしょう;例えば、グレゴリオ暦において結果は、0月と35日の代わりに、例えば、1月と5日になるかもしれません。結果の構成要素値は、resultDatestartDateの前ならば、負であるかもしれません。

The following example shows how to get the approximate number of months and days between two dates using an existing calendar (gregorian): 以下の例は、2つの日付の間のおおよその月と日の数を既存のカレンダー(gregorian)を使って得る方法を示します:


NSDate *startDate = ...;
NSDate *endDate = ...;
unsigned int unitFlags = NSMonthCalendarUnit | NSDayCalendarUnit;
NSDateComponents *comps = [gregorian components:unitFlags fromDate:startDate  toDate:endDate  options:0];
int months = [comps month];
int days = [comps day];

Note that some computations can take a relatively long time. いくつかの計算は比較的長い時間をとる可能性があることに注意してください。

See Also 参照

Extracting Components 構成要素の抽出

Related Documentation 関連文書