2016-03-28 13 views
1

Я разрабатываю приложение, в котором мне нужно обеспечить, чтобы сервис был открыт (т. Е. Текущий час лежит в течение часов работы службы).Время открытия и закрытия с 24-часовыми часами

Я использую 24-часовые часы, и мне трудно написать логику, чтобы заставить ее работать правильно, главным образом из-за ночной (0-12) часов. Мое текущее решение следующее, но, как я уже говорил, он не работает, потому что если час закрытия составляет 5 (5 часов), а текущий час равен 22 (10 вечера), 22> 5 = true, поэтому он возвращает false и терпит неудачу.

Таким образом, мой вопрос заключается в том, как эффективно обрабатывать 0-12 часов?

if (self.hour < start || self.hour >= end) 
    return false; 
else 
    return true; 

ответ

0

что-то, как это должно работать:

// get current hour 
let calendar = NSCalendar.currentCalendar() 
let now = NSDate() 
let dateComponents = calendar.components(.Hour, fromDate: now) 
let currentHour = dateComponents.hour 

// opening hours 
let startingHour = 22 
let endingHour = 6 

// check for different starting and ending hour 
if startingHour == endingHour { 
    print("no valid opening hours") 
    // return 
} 

// check if current hour is within opening hours 
if startingHour < endingHour { 
    // e.g. 7 - 15 
    if currentHour >= startingHour && currentHour < endingHour { 
     print("opened") 
    } else { 
     print("closed") 
    } 
} else { 
    // e.g. 22 - 6 
    if currentHour >= startingHour || currentHour < endingHour { 
     print("opened") 
    } else { 
     print("closed") 
    } 
}