Es gibt ein paar Möglichkeiten, es zu tun, in Abhängigkeit davon, in welchem Format Sie die Ausgabe mögen. Vorausgesetzt, dass Sie eine Reihe von ganzen Zahlen in Folge wollen, könnten Sie verwenden:
let today = Date()
let gregorian = Calendar(identifier: .gregorian)
let dateComponents = gregorian.dateComponents([.weekday], from: today)
let todaysWeekday = dateComponents.weekday!
var otherWeekdays: [Int] = []
for i in 1...6 {
otherWeekdays.append((todaysWeekday - 1 + i) % 7 + 1)
}
// assuming today = 2 (Monday), otherWeekdays will contain [3, 4, 5, 6, 7, 1]
Wenn Sie auch ein Array von Strings mit den Namen der Tage möchten, können Sie eine einfache Lookup tun, wenn Sie nicht über die Lokalisierung egal .
let weekdayNames = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
let otherWeekdayStrings = otherWeekdays.map({weekdayNames[$0 - 1]})
// otherweekdayStrings will contain ["Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]
Wenn robuste Lokalisierung erforderlich ist und Sie wollen nur die Saiten, können Sie eine DateFormatter verwenden und so etwas tun:
let today = Date()
let formatter = DateFormatter()
formatter.dateFormat = "EEEE"
var otherweekdayStrings: [String] = []
for i in 1...6 {
let timeIntervalToAdd = TimeInterval(i * 86400)
otherweekdayStrings.append(formatter.string(from: today.addingTimeInterval(timeIntervalToAdd)))
}
// Same output as previous
Geist mich, warum die downvote erzählen? – Voyager