按文字添加分钟

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)