How to create an array of dates starting with today and going back the last 30 days in Swift

1 Answer

0 votes
import Foundation

func getLast30Dates() -> [String] {
    // Get today's date
    let today = Date()
    var dates: [String] = []

    // Create a calendar instance for date calculations
    let calendar = Calendar.current

    // Define the date formatter for full dates
    let formatter = DateFormatter()
    formatter.dateFormat = "yyyy-MM-dd"

    // Populate the array with the last 30 full dates
    for i in 0..<30 {
        if let pastDate = calendar.date(byAdding: .day, value: -i, to: today) {
            let formattedDate = formatter.string(from: pastDate) // Format the date as a string
            dates.append(formattedDate)
        }
    }

    return dates
}

let dates = getLast30Dates()

print("Dates:")
for date in dates {
    print(date)
}



/*
run:

Dates:
2025-04-11
2025-04-10
2025-04-09
2025-04-08
2025-04-07
2025-04-06
2025-04-05
2025-04-04
2025-04-03
2025-04-02
2025-04-01
2025-03-31
2025-03-30
2025-03-29
2025-03-28
2025-03-27
2025-03-26
2025-03-25
2025-03-24
2025-03-23
2025-03-22
2025-03-21
2025-03-20
2025-03-19
2025-03-18
2025-03-17
2025-03-16
2025-03-15
2025-03-14
2025-03-13

*/

 



answered Apr 11 by avibootz
...