从 swift 中的当前月份获取下一个第 3 个月的名称

Get next 3rd month name from the current month in swift

如何获取从当前月份到 11 月的第 3 个月名称。例如:-如果当前月份是 11 月,那么我想要从 2 月开始的月份名称。当前月份应该是 运行 月份。

问题:如何获取当前月份的第 3 个月名称?

有人可以向我解释如何获取月份名称吗?任何帮助将不胜感激。

提前致谢。

//set start & end date in correct format
let startDate = "September"
let strEndDate = "December"

//create date formatter
let formatter = DateFormatter()
formatter.dateFormat = "MMMM"

//convert string into date object
guard let startDate = formatter.date(from: startDate) else {
  print("invalid start date")
   return
}

 //convert string into date object
guard let endDate = formatter.date(from: strEndDate) else {
  print("invalid end date time")
  return
}

//calculate the month from end date and that should not exceed the start date
for month in 1...6 {

  if let dt = Calendar.current.date(byAdding: .month, value: -month, to: endDate) {
     if dt.compare(startDate) == .orderedAscending {
        break
      } 
      print(formatter.string(from: dt!))
  }
}

您需要使用日历 class,例如

var now = Date()
var calendar = Calendar.current


if let then = calendar.date(byAdding: .month, value: 3, to: now) {
  let dateFormatter = DateFormatter()
  dateFormatter.dateFormat = "LLLL"
  let monthName = dateFormatter.string(from: then)
  print ("\(monthName)")
}

请记住日历算术的处理方式:如果您添加“3 个月”,假设是 2019 年 11 月 30 日,那么您将得到 Feb-29 日 ,2020 年,尽管有人可能期望 2020 年 3 月 1 日。