簡體   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