【发布时间】:2018-03-31 15:56:09
【问题描述】:
我需要计算两个 Int 之间的差异并将其格式化为显示小时、分钟。我可以将下面的函数部分地与初始 int 差异分开。
示例:如果我的起始 Int 为 0811,然后结束 Int 为 0912,则差异为 101。如果我从结果中取 12,我应该有 91。当我使用结果转换为时间时,它返回 1 小时 31 分钟 - 这是正确的。但是,我需要以某种方式将其进一步向上转换,然后将其取下以正确格式化时间。这应该意味着101 应该是 1 小时 1 分钟。
func calculateTimeDifference(start: Int, end: Int, longVersion: Bool) -> String {
let count = end - start
let total = minutesToHoursMinutes(minutes: count)
var formatted = ""
if total.hours != 0 {
formatted += "\(total.hours)"
let amount = total.hours > 1 ? " hours " : " hour "
formatted += amount
}
if total.leftMinutes != 0 {
formatted += "\(total.leftMinutes)"
let amount = total.leftMinutes > 1 ? " minutes " : " minute "
formatted += amount
}
return String(describing: formatted)
}
func minutesToHoursMinutes(minutes : Int) -> (hours : Int, leftMinutes : Int) {
return (minutes / 60, (minutes % 60))
}
【问题讨论】:
-
你的问题太混乱了。 101 分钟 = 1 小时 41 分钟。之后你想要什么?
-
到底是什么问题?
-
我希望使用两个 Int 之间的差异,如果结果是 100 的倍数,则假设每个 100 是一个小时,其余的是分钟。
-
为什么不除以 100?