0
我試圖獲取某個日期的星期幾(星期三,星期二),但我似乎無法找到實際獲取該字符串的好方法。這是我在做什麼:如何獲取某個日期的星期幾字符串表示Swift
internal func fromToday(daysAgo: Date) -> String {
let calendar = NSCalendar.autoupdatingCurrent
let startOfNow = calendar.startOfDay(for: Date())
let startOfTimeStamp = calendar.startOfDay(for: daysAgo)
let numDaysDifference = abs(calendar.dateComponents([.day], from: startOfNow, to: startOfTimeStamp).day!)
let daysAgoComponents = calendar.dateComponents([.weekday, .hour, .minute], from: daysAgo)
var hour = daysAgoComponents.hour!
var timeOfDay = "AM"
if hour >= 13 {
hour -= 12
timeOfDay = "PM"
}
var res = "\(hour):\(daysAgoComponents.minute!)\(timeOfDay)"
if calendar.isDateInYesterday(daysAgo) {
res = "Yesterday"
} else if numDaysDifference < 8 && numDaysDifference > 1 {
res = stringFromWeekday(day: daysAgoComponents.weekday!) // HERE THIS IS WHAT IM ASKING ABOUT IGNORE OTHER IFS
} else if numDaysDifference >= 8 {
res = stringFromDate(day: daysAgo)
}
return res
}
fileprivate func stringFromWeekday(day: Int) -> String {
let formatter = DateFormatter()
formatter.locale = Locale(identifier: "en_US")
if formatter.weekdaySymbols.count < day {
print("ConversationTVC - \(day) is not a valid day of the week")
}
return formatter.weekdaySymbols[day]
}
具體來說,該行:
else if numDaysDifference < 8 && numDaysDifference > 1
res = stringFromWeekday(day: daysAgoComponents.weekday!)`
我認爲這個問題已經做weekdaySymbols
如何獲得一天的字符串表示X日前給出日期的一週?