import Foundation
// Generate a random date between two years using Date
func randomDate(startYear: Int, endYear: Int) -> Date {
let calendar = Calendar.current
// Convert start and end years to timestamps
let start = calendar.date(from: DateComponents(year: startYear, month: 1, day: 1))!
let end = calendar.date(from: DateComponents(year: endYear, month: 12, day: 31))!
let startTime = start.timeIntervalSince1970
let endTime = end.timeIntervalSince1970
// Uniform distribution over the timestamp range
let randomTime = TimeInterval.random(in: startTime...endTime)
// Convert back to Date
return Date(timeIntervalSince1970: randomTime)
}
var dates: [Date] = []
for _ in 0..<10 {
dates.append(randomDate(startYear: 1990, endYear: 2030))
}
let calendar = Calendar.current
for d in dates {
let year = calendar.component(.year, from: d)
let month = calendar.component(.month, from: d)
let day = calendar.component(.day, from: d)
print("\(year)-\(month)-\(day)")
}
/*
run:
1999-11-16
2017-8-19
1991-6-23
2000-5-27
1998-3-26
1995-12-20
2002-8-8
2017-7-28
2028-2-11
1994-6-19
*/