How to create a list of random dates in Swift

1 Answer

0 votes
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

*/

 



answered 15 hours ago by avibootz
...