2017-09-27 3 views
-3

Ich würde gerne wissen, wie man den Unterschied zwischen der Login-Zeit und Abmeldezeit berechnen, zum Beispiel: Login-Zeit: 8.00 Uhr und Abmeldezeit: 17.00 Uhr, und ich sollte 9 Stunden als Gesamtstunden bekommen. iOS Swift - Berechnen Sie den Unterschied zwischen zwei Zeiten

Dies ist das Format der Zeit, die

 // Set the time 
    let timeFormatter = DateFormatter() 
    timeFormatter.dateStyle = .none 
    timeFormatter.timeStyle = .short 
    timeFormatter.amSymbol = "AM" 
    timeFormatter.pmSymbol = "PM" 

    let timeString = timeFormatter.string(from: date) 
+1

Mögliches Duplikat von [Unterschied zwischen 2 Daten in Wochen und Tagen mit swift 3 und xcode 8] (https://stackoverflow.com/questions/42294864/difference-between-2-dates-in-weeks-and-days -use-swift-3-und-xcode-8) – aksh1t

+1

Duplikat von https://StackOverflow.com/a/42017851/2303865 –

+1

@LeoDabus, Entschuldigung dafür. Danke für die Erinnerung. Ich wünsche ihnen einen wunderbaren Tag! – TSM

Antwort

1

Bei der Anmeldung ...

let loginTime = Date() 
    UserDefaults.standard.set(loginTime, forKey: "loginTime") 

Dann beim Abmelden ...

let loginTime = UserDefaults.standard.object(forKey: "loginTime") as? Date ?? Date() 
    let loginInterval = -loginTime.timeIntervalSinceNow 

    let formatter = DateComponentsFormatter() 
    formatter.unitsStyle = .full 
    formatter.includesApproximationPhrase = false 
    formatter.includesTimeRemainingPhrase = false 
    formatter.allowedUnits = [.hour, .minute] 

    // Use the configured formatter to generate the string. 
    let userLoginTimeString = formatter.string(from: loginInterval) ?? "" 
    print("user was logged in for \(userLoginTimeString)") 

Viel Spaß!

+0

Vielen Dank für Ihre Antwort @ekscrypto. Ich werde das auch ausprobieren. Einen schönen Tag noch! – TSM

1

bearbeiten zu Feuerbasis gespeichert wird:Found duplicate question

erstellen Date Objekte (link to question) aus dem Login (loginTime) und Logout (logoutTime) mal und dann wie folgt verwenden:

let components = Calendar.current.dateComponents([.hour, .minute], from: loginTime, to: logoutTime) 

// To get the hours 
print(components.hour) 
// To get the minutes 
print(components.minute) 
+0

Danke für deine Antwort, @ aksh1t. Ich werde das ausprobieren. – TSM

+0

Schöne Lösung, Zeit, um meine manuellen Berechnungen zu aktualisieren: D – ekscrypto

Verwandte Themen