2016-03-28 13 views
1

私は、サービスが開かれている(つまり現在の時間がサービスの営業時間内にある)アプリケーションを開発しています。24時間制の開閉時間

私は24時間制を使用していますが、主に夜間(0-12)時間のために、ロジックが正しく動作するように書くのが難しいです。私の現在の解決策は以下の通りですが、閉鎖時間が5(5am)で現在の時間が22(10pm)の場合22> 5 = trueであるため、falseを返して失敗するため、

私の質問はどのようにして効率よく0-12am時間を処理するのですか?

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") 
    } 
}