2017-02-10 38 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

相关问题