【问题标题】:How to get date a week, month, year from now excluding the starting day, month, year如何获取从现在开始的一周、一个月、一年的日期,不包括开始日、月、年
【发布时间】:2016-06-27 07:34:07
【问题描述】:
class func getDateFor(forOption: Int) -> String {

    let unit : NSCalendarUnit = [.WeekOfYear, .Month, .Year][forOption]
    let calendar = NSCalendar.currentCalendar()
    let date = calendar.dateByAddingUnit(unit, value: -1, toDate: NSDate(), options: NSCalendarOptions.WrapComponents)
    let formatter = NSDateFormatter()
    formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"
    formatter.timeZone = NSTimeZone(forSecondsFromGMT: 0)
    formatter.locale = NSLocale(localeIdentifier: "en_US_POSIX")
    var returnDate = formatter.stringFromDate(date!)
    returnDate = returnDate.stringByReplacingOccurrencesOfString(":", withString: "%3A")
    return returnDate
} 

我实际想要的是选择选项以供

  1. 周:应该返回从今天起 7 天的日期,包括今天。 (比如说今天是星期一。所以返回的日期应该是上星期二的日期。)

  2. 月份:应该从这周返回第四周,包括这周,这样如果我在“第四周”,则应该返回“第一周”。

  3. 年份:应该从今天的月份返回第 11 个月。 (比如说,这是六月。所以返回的月份应该是七月。)

当前似乎正在返回包括开始日期在内的值。提前致谢。

【问题讨论】:

  • 那么问题出了什么问题,以至于它得到了两个反对票,想摆脱编程智慧?

标签: ios swift nsdate options nscalendar


【解决方案1】:
let decreaseUnit: NSCalendarUnit = [.Day, .WeekOfYear, .Month][forOption]
let date = calendar.dateByAddingUnit(decreaseUnit, value: 1, toDate: dateIncluding!, options: NSCalendarOptions())

添加以下代码行得到了我的解决方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-12-11
    • 2022-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多