import Foundation
func dateRange(from start: Date, to end: Date) -> AnySequence<Date> {
let calendar = Calendar.current
return AnySequence<Date> {
var current = start
return AnyIterator<Date> {
guard current <= end else { return nil }
let result = current
current = calendar.date(byAdding: .day, value: 1, to: current)!
return result
}
}
}
let calendar = Calendar.current
let start = calendar.date(from: DateComponents(year: 2026, month: 1, day: 3))!
let end = calendar.date(from: DateComponents(year: 2026, month: 1, day: 12))!
let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd"
let dates = Array(dateRange(from: start, to: end))
print("Generated \(dates.count) dates:")
dates.forEach { print(formatter.string(from: $0)) }
/*
run:
Generated 10 dates:
2026-01-03
2026-01-04
2026-01-05
2026-01-06
2026-01-07
2026-01-08
2026-01-09
2026-01-10
2026-01-11
2026-01-12
*/