2017-02-10 109 views
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日前給出日期的一週?

回答

0

問題是我從一天不減1,工作日返回1-7和工作日符號是0-6