gpt4 book ai didi

ios - 检查时间间隔

转载 作者:行者123 更新时间:2023-11-30 12:01:27 24 4
gpt4 key购买 nike

我正在编写一个应用程序,该应用程序应该计算瑞典的小时工资。在特定日期的特定时间间隔之间,基本工资会有附加费。我启动一个计时器并将当前时间与开始时间进行比较以获取耗时。如何查看特定时间间隔(例如 18:00-次日 01:00 或 01.00-06.00)内耗时有多少。到目前为止,我已经尝试过嵌套 if 检查,但我希望用户能够更改间隔时间。

最佳答案

假设endDatestartDate晚不到24小时,您可以使用下面的函数来确定两个日期之间经过了多少时间(以小时和分钟为单位)。

您可以使用 Date.timeIntervalSince(_ date:) 来确定两个 Date 对象之间的秒数差异,然后您可以轻松地将差异转换为更人性化的值指定经过的小时/分钟的可读格式。

func timeElapsed(from startDate:Date,to endDate:Date)->DateComponents{
let secondsElapsed = Int(endDate.timeIntervalSince(startDate))
let minutes = (secondsElapsed%3600)/60
let hours = secondsElapsed/3600
return DateComponents(hour: hours, minute: minutes)
}

当日期/月份不同时,上述函数也可以正常工作。

一些测试数据:

timeElapsed(from: Calendar.current.date(from: DateComponents(day: 1, hour: 18, minute: 0))!, to: Calendar.current.date(from: DateComponents(day: 2, hour: 6, minute: 14))!) //hour: 12 minute: 14 isLeapMonth: false 
timeElapsed(from: Calendar.current.date(from: DateComponents(day: 1, hour: 20, minute: 46))!, to: Calendar.current.date(from: DateComponents(day: 2, hour: 4, minute: 14))!) //hour: 7 minute: 28 isLeapMonth: false
timeElapsed(from: Calendar.current.date(from: DateComponents(month: 1, day: 31, hour: 20, minute: 0))!, to: Calendar.current.date(from: DateComponents(month: 2, day: 1, hour: 4, minute: 0))!) //hour: 8 minute: 0 isLeapMonth: false

如果您决定将来需要更多,您可以轻松修改该函数以返回更多 DateComponents。如果两个日期之间的 24 小时差异可能更大,也可以轻松调整。

关于ios - 检查时间间隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47164746/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com