インスタンスメソッド


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


与えられたコンポーネントのセットに一致する (または最も近い) 日付を計算し、列挙が停止されるまで、各日付に対してクロージャを 1 回呼び出します。


iOS 8.0+ iPadOS 8.0+ Mac Catalyst 13.0+ macOS 10.10+

tvOS 9.0+ VisionOS 1.0+ WatchOS 2.0+ Xcode 6.0.1+


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




パラメータ


start

検索を開始すべき日付。


components

検索アルゴリズムへの入力として使用すべき DateComponents


matchingPolicy

入力によってあいまいな結果が生成される場合の検索アルゴリズムの動作を決定します。


repeatedTimePolicy

入力によって特定の日に 2 回発生する時刻が生成される場合の検索アルゴリズムの動作を決定します。


direction

検索すべき時間の方向。デフォルト値は .forward で、これは時間的に後を意味します。


block

検索結果で呼び出されるクロージャ。



議論


与えられた日付と結果の間には、すべてのコンポーネントと一致しない (または与えられた日付自体が一致しない) 中間の日付が少なくとも 1 つあります。


direction.backward に設定されている場合、このメソッドは与えられた日付より前の一致を検索します。意図は、.forward 検索と同じ一致が見つかることです (つまり、分が "27" の各時間を前方または後方に列挙する場合、前方検索で取得する日付の秒は明らかに 00 になり、このルールを実装するために後方検索でも同じことが当てはまります)。同様に、時間を繰り返す DST 後方ジャンプの場合、デフォルトで最初の一致が取得されます。ここで、「最初」は前方検索の観点から定義されます。したがって、分と秒を指定せずに特定の時間を後方検索すると、一致する時間の分と秒の 59:59 は取得されません (後方検索時の他のルールを考慮すると、与えられた時間内で名目上最初の一致になります)。


完全一致が不可能で、strict オプションで要求された場合、nil がクロージャに渡され、列挙が終了します。(論理的には、完全一致は未来まで無期限に検索するため、一致が見つからない場合は列挙を続けるのは意味がありません。


結果の日付には、(DateComponentsmatching パラメータの nanoseconds プロパティに 0 が指定された場合のように) 整数の秒数が含まれます。ただし、nanoseconds プロパティに値が設定されていない場合、結果の日付にはそのナノ秒数 (または浮動小数点数で可能な限り近い値) が含まれます。


列挙は、クロージャで stoptrue に設定して戻ることで停止します。列挙を継続するために stopfalse に設定する必要はありません。





以下も見よ


日付のスキャン


func startOfDay(for: Date) -> Date

与えられた日付の最初の瞬間を日付として返します。


func nextDate(after: Date, matching: DateComponents, matchingPolicy: Calendar.MatchingPolicy, repeatedTimePolicy: Calendar.RepeatedTimePolicy, direction: Calendar.SearchDirection) -> Date?

与えられたコンポーネントのセットに一致する (または最も近い) 次の日付を計算します。


enum Calendar.MatchingPolicy

日付の検索に使用するメソッドを制御するための検索アルゴリズムのヒント。


enum Calendar.RepeatedTimePolicy

カレンダーの日に時間が繰り返される場合 (たとえば、夏時間への移行時に午前 2 時から午前 3 時までの時間が 2 回発生する場合など) に使用する結果を決定します。














トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ