2017-04-19 2 views
0

ho könnte ich einige Int manipulieren sie als Minuten hinzufügen und summieren sie? Das Ergebnis sollte in Stunden und Minuten wie 1:15 oder 6:30 sein.Hinzufügen von Minuten durch Literale

Mein Spielplatz gibt 1,25 aber ich erwartete 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 

Antwort

0

Da im Dezimalsystem ein Viertel 0,25 ist.

Um numerische 1,15 Sie diesen komischen Ausdruck verwenden:

var total = Double(Int(dayToUse.dailyHours)/60) + (dayToUse.dailyHours.truncatingRemainder(dividingBy: 60)/100.0) 

Oder wenn Sie mit einem formatierten "hh:mm" String leben würde ich

let formatter = DateComponentsFormatter() 
formatter.allowedUnits = [.hour, .minute] 
formatter.string(from: dayToUse.dailyHours * 60) 
+0

Ihre zweite Option scheint die empfehlen zu sein nah an Swift semplicity! danke für Ihre Hilfe! Ich denke, auf diese Weise könnte ich sogar einen Gesamtbetrag für diese Dauer mit Double verwenden, oder? – biggreentree

+0

@biggreentree Ja kannst du. – vadian

Verwandte Themen