我正在尝试从下个月的日期计算月份(和年份)值。我已经按照指示说明了如何计算下个月的日期,但是我只需要月份值即可。
我曾短暂尝试过使用DateFormatter,但这超出了我对日期的了解。
let calendar = Calendar.current
let rightNow = Date()
let monthOfYear = calendar.component(.month, from: rightNow)
let nextMonthOfYear = calendar.date(byAdding: .month, value: 1, to: rightNow)
如果我们在六月,我希望下个月的月份值将收到7。
答案 0 :(得分:2)
您可以从今天的日期中获取年和月的组成部分,在月份值中添加一个,从中创建一个新日期,然后提取其月份值:
.transform(transformer, e -> e.advice(myExpressionEvaluatingRequestHandlerAdvice())
extension Date {
var year: Int {
return Calendar.current.component(.year, from: self)
}
var month: Int {
return Calendar.current.component(.month, from: self)
}
var nextMonth: Date {
return DateComponents(calendar: .current, year: year, month: month+1).date!
}
}
或者简单地
let now = Date() // "28 Jun 2019 17:27"
let nextMonthDate = now.nextMonth // "1 Jul 2019 00:00"
let nextMonth = nextMonthDate.month // 7