按文字添加分钟
Adding minutes by literals
我可以操纵一些 Int 将它们添加为分钟并求和吗?结果应该以小时和分钟为单位,就像 1:15 或 6:30.
我的游乐场给出了 1.25,但我预计是 1.15
struct standardDayOfWork {
var dailyHours : Double = 0
}
var dayToUse = standardDayOfWork()
enum hourFractions : Double {
case quarter = 15
case half = 30
case threeQuarter = 45
case hour = 60
}
dayToUse.dailyHours += hourFractions.half.rawValue
dayToUse.dailyHours += hourFractions.half.rawValue
dayToUse.dailyHours += hourFractions.quarter.rawValue
var total = dayToUse.dailyHours / 60 //1.25
因为在十进制中,四分之一是 0.25。
要获得数字 1.15,您可以使用这个奇怪的表达式:
var total = Double(Int(dayToUse.dailyHours) / 60) + (dayToUse.dailyHours.truncatingRemainder(dividingBy: 60) / 100.0)
或者,如果您可以接受格式化的 "hh:mm"
字符串,我会推荐
let formatter = DateComponentsFormatter()
formatter.allowedUnits = [.hour, .minute]
formatter.string(from: dayToUse.dailyHours * 60)
我可以操纵一些 Int 将它们添加为分钟并求和吗?结果应该以小时和分钟为单位,就像 1:15 或 6:30.
我的游乐场给出了 1.25,但我预计是 1.15
struct standardDayOfWork {
var dailyHours : Double = 0
}
var dayToUse = standardDayOfWork()
enum hourFractions : Double {
case quarter = 15
case half = 30
case threeQuarter = 45
case hour = 60
}
dayToUse.dailyHours += hourFractions.half.rawValue
dayToUse.dailyHours += hourFractions.half.rawValue
dayToUse.dailyHours += hourFractions.quarter.rawValue
var total = dayToUse.dailyHours / 60 //1.25
因为在十进制中,四分之一是 0.25。
要获得数字 1.15,您可以使用这个奇怪的表达式:
var total = Double(Int(dayToUse.dailyHours) / 60) + (dayToUse.dailyHours.truncatingRemainder(dividingBy: 60) / 100.0)
或者,如果您可以接受格式化的 "hh:mm"
字符串,我会推荐
let formatter = DateComponentsFormatter()
formatter.allowedUnits = [.hour, .minute]
formatter.string(from: dayToUse.dailyHours * 60)