2016-05-27 6 views
1

Ich habe eine App, die ich in Swift baue, die feststellen muss, ob ein Laden/Restaurant gerade geöffnet ist. Es fragt eine Datenbank ab, über die ich die Kontrolle habe, also kann ich die Öffnungszeiten so einstellen, wie ich möchte. Zur Zeit habe ich eine openTime/closeTime-Spalte für jeden Wochentag, der als Zeitstempel festgelegt ist. Zum Beispiel: MonOpen = 11:00, MonClose = 19:00.Wie man feststellen kann, ob ein Geschäft geöffnet ist (Swift-iOS)

Wie kann ich mit swift feststellen, ob der Geschäftssitz gerade geöffnet ist? Ich stelle mir etwas wie if currentTime > MonOpen & currentTime < MonClose {...

vor Ein Beispiel dafür ist die iOS Starbucks App. Wenn Sie zu Standorten gehen, wird jeder Standort mit einem "Öffnen bis 22:00" oder "Öffnen bis 23:00" aufgeführt.

Antwort

1

Es ist nur eine Frage der mit der Zeitzone spielen, ob Sie die Benutzersystem die Zeitzone verwenden oder lassen Sie sie ein anderes in den Einstellungen der App wählen:

let tz = NSTimeZone.defaultTimeZone() 
let now = NSCalendar.currentCalendar().componentsInTimeZone(tz, fromDate: NSDate()) 

if now.weekDay == 2 && now.hour > MonOpen && now.hour < MonClose { 
    // The store is open 
} 
+0

so toll gearbeitet. Ich fand heraus, 'NSTimeZone.setDefaultTimeZone (NSTimeZone (Name:" America/New_York ")!)' Zu verwenden, um die Standardzeitzone im App-Delegaten festzulegen. –

+0

@CodeDifferent - und was, wenn Anfangs- oder Enddatum Minuten enthält, z. MonOpen = 11:30, MonClose = 19:30 usw. Könnten Sie Ihre Antwort aktualisieren? –

+0

Wie speichern Sie 'MonOpen' und' MonClose'? Als Dezimalstunden (11.5 & 19.5)? Oder als Saiten? –