如何获得两个日期之间的日差?

时间:2019-09-27 03:13:19

标签: ios swift

我有下面的代码来计算2个日期之间的天差。在第一个视图中,我从 UIDatePicker()中选择一个日期,按一个按钮以选择第二个视图,并计算所选日期和今天的日期之间的天差,并将结果传递给第二个视图被显示。

我只是无法获得计算工作时差的函数。我在做错什么吗? 抱歉,我刚刚开始学习快速。

在我的代码上

Calendar.current.dateComponents([.day], from: self.GetDate,to: datePicker.date).day!

我在下面收到此错误

  

类型“任何”没有成员“天”

-

第一视图。

import UIKit

class ViewController: UIViewController {

    @IBOutlet weak var dateInput: UITextField!
    let datePicker = UIDatePicker()

    var GetDate = ""


    override func viewDidLoad() {
        super.viewDidLoad()
        CreateDatePicker()
    }

    // Create Date
    func CreateDatePicker() {
        datePicker.datePickerMode = .date
        dateInput.inputView = datePicker
        let toolbar = UIToolbar()
        toolbar.sizeToFit()
        let doneButton = UIBarButtonItem(barButtonSystemItem: .done, target: nil, action: #selector(doneClicked))
        toolbar.setItems([doneButton], animated: true)
        dateInput.inputAccessoryView = toolbar
    }

    @objc func doneClicked() {
        let dateFormatter = DateFormatter()
        dateFormatter.dateStyle = .medium
        dateFormatter.timeStyle = .none
        dateInput.text = dateFormatter.string(from: datePicker.date)
        self.view.endEditing(true)
    }


    @IBAction func GetDateButton(_ sender: Any) {
        self.GetDate = dateInput.text!
        performSegue(withIdentifier: "toTime", sender: self)
        Calendar.current.dateComponents([.day], from: self.GetDate,to: datePicker.date).day!
    }

    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        let vc = segue.destination as! timeDiffr
        vc.textDisplay = self.GetDate
    }
}

第二视图

import Foundation
import UIKit

class timeDiffr: UIViewController {

    @IBOutlet weak var labeltext: UILabel!

    var textDisplay = ""

    override func viewDidLoad() {
        super.viewDidLoad()
        labeltext.text = textDisplay
    }

}

1 个答案:

答案 0 :(得分:1)

您应该注意有关您的编码约定

  • 变量名称应为驼峰式:GetDate应为getDateGetDateButton应为getDateButtonCreateDatePicker应为{{1} }

您的createDatePicker是一个字符串,而getDate返回一个int值。那就是您需要解决的问题。

您的Calendar.current.dateComponents([.day], from: self.GetDate,to: datePicker.date).day!函数应为:

GetDateButton