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

enumerateDates(startingAfter:matching:matchingPolicy:repeatedTimePolicy:direction:using:)

Computes the dates which match (or most closely match) a given set of components, and calls the closure once for each of them, until the enumeration is stopped. 与えられた一揃いの構成要素と合致する(または最も近くの合致する)日付それらを計算します、そしてそれらの各々で一度だけクロージャを呼び出します、列挙が停止されるまで。

Declaration 宣言

func enumerateDates(startingAfter start: Date, matching components: DateComponents, matchingPolicy: Calendar.MatchingPolicy, repeatedTimePolicy: Calendar.RepeatedTimePolicy = .first, direction: Calendar.SearchDirection = .forward, using block: (_ result: Date?, _ exactMatch: Bool, _ stop: inout Bool) -> Void)

Parameters パラメータ

start

The Date at which to start the search. それで検索を開始するところのDate

components

The DateComponents to use as input to the search algorithm. 検索アルゴリズムへの入力として使うDateComponents

matchingPolicy

Determines the behavior of the search algorithm when the input produces an ambiguous result. 入力が曖昧な結果を生成する場合の検索アルゴリズムの挙動を決定します。

repeatedTimePolicy

Determines the behavior of the search algorithm when the input produces a time that occurs twice on a particular day. 入力が特定の日に2度起こる時間を生成する場合の検索アルゴリズムの挙動を決定します。

direction

Which direction in time to search. The default value is .forward, which means later in time. 時間で、どっちの方向を検索するか。省略時の値は.forwardです、それは時間的により最近を意味します。

block

A closure that is called with search results. 検索結果とともに呼び出されるクロージャ。

Discussion 議論

There will be at least one intervening date which does not match all the components (or the given date itself must not match) between the given date and any result. 与えられた日付と何らかの結果の間で、全ての構成要素に合致しない(また与えられた日付それ自体は合致してはならない)少なくとも1つの、間にある日付があります。

If direction is set to .backward, this method finds the previous match before the given date. The intent is that the same matches as for a .forward search will be found (that is, if you are enumerating forwards or backwards for each hour with minute “27”, the seconds in the date you will get in forwards search would obviously be 00, and the same will be true in a backwards search in order to implement this rule. Similarly for DST backwards jumps which repeats times, you’ll get the first match by default, where “first” is defined from the point of view of searching forwards. So, when searching backwards looking for a particular hour, with no minute and second specified, you don’t get a minute and second of 59:59 for the matching hour (which would be the nominal first match within a given hour, given the other rules here, when searching backwards). direction.backwardに設定されるならば、このメソッドは与えられた日付より前の最初の合致するものを見つけます。意図としては、.forward検索に対するのと同じ合致するものが見つけられることです(すなわち、あなたが前方または後方に “27” 分を持つ各一時間を列挙しているならば、あなたが前方検索で得る日付の中の秒数は当然ながら00になるでしょう、そして同じことは後方検索においてこの規則を実装するために当てはまります。同様に時間に繰り返すDST後方ジャンプに対して、あなたは最初の合致するものを初期状態で得ます、ここで “最初” は前方に検索する観点から定義されます。それで、分と秒を指定しないで、特定の一時間を見つけるために後方に検索する場合、あなたは合致する一時間に対して59:59の分と秒を得ません(それは後方に検索する場合、ここで与えられた他の規則の、与えられた一時間内の名目上の最初の合致でしょう)。

If an exact match is not possible, and requested with the strict option, nil is passed to the closure and the enumeration ends. (Logically, since an exact match searches indefinitely into the future, if no match is found there’s no point in continuing the enumeration.) 厳密な合致が可能でない、そしてstrictオプションで要請されるならば、nilがクロージャに渡されます、そして列挙は終わります。(論理的に、厳密な合致は無限に未来へと検索することから、合致するものが見つからないならばこの列挙を続けても利益がありません。)

Result dates have an integer number of seconds (as if 0 was specified for the nanoseconds property of the DateComponents matching parameter), unless a value was set in the nanoseconds property, in which case the result date will have that number of nanoseconds (or as close as possible with floating point numbers). 結果の日付は整数の秒を持ちます(まるで0がDateComponentsマッチングパラメータのnanosecondsプロパティに指定されたかのように)、値がnanosecondsプロパティに設定された場合を除き、その場合には結果の日付はその値の(または浮動小数点とできるだけ近い)ナノ秒数を持つでしょう。

The enumeration is stopped by setting stop to true in the closure and returning. It is not necessary to set stop to false to keep the enumeration going. 列挙は、stoptrueへとクロージャの中で設定することそして返すことによって停止されます。列挙し続けるためにstopfalseに設定する必要はありません。

See Also 参照

Scanning Dates 日付を走査する