繁体   English   中英

Swift - 获取下一个日期

[英]Swift - Get next date

我正在尝试编写一个函数,该函数接受一个字符串(格式为“dd MM yyyy”)并返回作为参数给出的第二天。

例如:

let nextDay = getNextDay("31 12 2016")
print(nextDay)

会打印:

01 01 2017

有人可以告诉我如何做到这一点吗? 谢谢

这是可能对您有所帮助的代码片段。

//Call method like this

convertNextDate(dateString: "31 12 2016")


// Method is here

func convertNextDate(dateString : String){    
    let dateFormatter = DateFormatter()
    dateFormatter.dateFormat = "dd MM yyyy"
    let myDate = dateFormatter.date(from: dateString)!
    let tomorrow = Calendar.current.date(byAdding: .day, value: 1, to: myDate)
    let somedateString = dateFormatter.string(from: tomorrow!)
    print("your next Date is \(somedateString)")
}

另一种方法是创建扩展,它就在这里。

extension String {
    func convertToNextDate(dateFormat: String) -> String {
        let dateFormatter = DateFormatter()
        dateFormatter.dateFormat = dateFormat
        let myDate = dateFormatter.date(from: self)!
        let tomorrow = Calendar.current.date(byAdding: .day, value: 1, to: myDate)
        return dateFormatter.string(from: tomorrow!)
    }
}

用法

print("31 12 2016".convertToNextDate(dateFormat: "dd MM yyyy"))

注意:您可以使用所需的日期格式,只要确保它是合适的。

class DateHelper
{

  lazy var formatter:DateFormatter = {
  let formatter = DateFormatter()
  formatter.dateFormat = "dd MM yyyy"
  return formatter
}()

  lazy var dateComponents:DateComponents = {
  var dateComp = DateComponents()
  dateComp.day = 1
  return dateComp
}()

  func getNext(dateString:String) -> String?
  {
    if let date     =  self.formatter.date(from: dateString),
       let nextDate = Calendar.current.date(byAdding: self.dateComponents, to: date)
    {
      return self.formatter.string(from: nextDate)
    }
    return nil
  }
}

DateHelper().getNext(dateString: "31 12 2016")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM