dates(byAdding:startingAt:in:wrappingComponents:)

Returns a sequence of Dates, calculated by repeatedly adding an amount of DateComponents to a starting Date and then to each subsequent result. If a range is supplied, the sequence terminates if the next result is not contained in the range. The starting point does not need to be contained in the range, but if the first result is outside of the range then the result will be an empty sequence.

iOS
16.4+
macOS
13.3+
tvOS
16.4+
watchOS
9.4+
func dates(byAdding components: DateComponents, startingAt start: Date, in range: Range<Date>? = nil, wrappingComponents: Bool = false) -> some Sendable & Sequence<Date>

Parameters

start

The starting point of the search.

range

The range of dates to allow in the result. The sequence terminates if the next result is not contained in this range. If nil, all results are allowed.

components

The components to add or subtract.

wrappingComponents

If true, the component should be incremented and wrap around to zero/one on overflow, and should not cause higher components to be incremented. The default value is false.

Returns

A Sequence of Date values, or an empty sequence if no addition could be performed.