Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 斯威夫特-获得下一个日期_Ios_Swift_Xcode - Fatal编程技术网

Ios 斯威夫特-获得下一个日期

Ios 斯威夫特-获得下一个日期,ios,swift,xcode,Ios,Swift,Xcode,我正在尝试编写一个函数,它接受一个字符串(格式为“dd-MM-yyyy”),并返回给定字符串后的第二天作为参数 例如: let nextDay = getNextDay("31 12 2016") print(nextDay) 将打印: 01 01 2017 有人能告诉我怎么做吗?谢谢以下是可能对您有所帮助的代码片段 //Call method like this convertNextDate(dateString: "31 12 2016") // Method

我正在尝试编写一个函数,它接受一个字符串(格式为“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!)
    }
}
用法


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

如果您在使用此框架之前没有在swift中使用日期:-这里还有很多答案,为了解决使用日期的问题,只需使用搜索功能:-)+1来使用
.date(通过添加:,值:,到:)
。许多关于堆栈溢出的示例错误地计算了第二天的时间,添加了
24*60*60
seconds。感谢@robotcat的支持
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")