我有下面的代码来计算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
}
}
答案 0 :(得分:1)
您应该注意有关您的编码约定
GetDate
应为getDate
,GetDateButton
应为getDateButton
,CreateDatePicker
应为{{1} } 您的createDatePicker
是一个字符串,而getDate
返回一个int值。那就是您需要解决的问题。
您的Calendar.current.dateComponents([.day], from: self.GetDate,to: datePicker.date).day!
函数应为:
GetDateButton