【问题标题】:How to get the weekday string representation for a date Swift如何获取日期 Swift 的工作日字符串表示
【发布时间】:2017-02-11 02:42:44
【问题描述】:

我正在尝试获取日期的工作日(星期三,星期二),但我似乎找不到实际获取字符串的好方法。这就是我正在做的:

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 天前星期几的字符串表示形式?

【问题讨论】:

    标签: ios swift


    【解决方案1】:

    问题是我没有从一天中减去 1,工作日返回 1-7,工作日符号是 0-6

    【讨论】:

      猜你喜欢
      • 2014-03-11
      • 2017-04-25
      • 2013-09-07
      • 1970-01-01
      • 1970-01-01
      • 2015-05-13
      • 1970-01-01
      • 1970-01-01
      • 2010-10-30
      相关资源
      最近更新 更多