如何在Swift中从时间间隔中减去30分钟?

时间:2019-06-12 08:00:11

标签: swift datepicker nstimeinterval

我制作了一个带有datePicker和2个按钮的应用程序-“签入”和“签出”。我以小时和分钟为单位在两个时间戳之间进行了计算。 现在,如果“签入”时间在12:00之前,我想从该时间间隔中减去30分钟。

到目前为止,这是我的代码:

var start = Date()

var end = Date()

class ViewController: UIViewController {

@IBOutlet weak var timeWheel: UIDatePicker!
@IBOutlet weak var workLabel: UILabel!

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

@IBAction func checkIn(_ sender: Any) {
    start = timeWheel.date
    workLabel.text = ""
}

@IBAction func checkOut(_ sender: Any) {
    end = timeWheel.date
    let difference = Calendar.current.dateComponents([.hour, .minute], from: start, to: end)
    workLabel.text = "\(difference.hour ?? 0) timer og \(difference.minute ?? 0) minutter"
}
}

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

在计算差异之前,请获取hour的{​​{1}}分量,并检查其是否小于12。如果是,则减去30分钟,然后进行数学运算

start

强制拆开组件非常好,因为两个组件均已明确要求。