2016-08-17 8 views

答えて

4

使用NSCalendar

let date = NSDate() 

let calendar = NSCalendar.currentCalendar() 
calendar.timeZone = NSTimeZone(name: "MST")! 

let hour = calendar.component(.Hour, fromDate: date) 
let between6And11PM = 18 <= hour && hour < 23 

(OPので編集が午後11時が含まれるべきではない状態)

+0

あなたの 'date'の値は何ですか? 'let date = calendar.dateWithEra(1、年:2016、月:8、日:16、時:23、分:30、秒:0、ナノ秒:0)! ' –

+0

@コードベンダー** Shouldn 11時から11時59分の間は落ちますか? OPは「6PMから11PMの間」を求めた。 18:00 <= t <= 23:00である。 「11:00〜11:59の間」は、OPが尋ねたのと同じ1時間間隔です。 –

0

使用NSCalendarNSDateComponents。文字列 "Calendrical calculations"でXcodeを検索します。

あなたは日から時間、分、秒を抽出し、if文の時間が範囲内にあるかどうかを確認するために化合物を書くことができます:

if components.hour >= 18 && components.hour < 23 { 
    print("The time is between 6PM and 11PM") 
} 
1
let date = NSDate() 
let calendar = NSCalendar.currentCalendar() 
let components = calendar.components([.Hour, .Minute], fromDate: date) 
let hour = components.hour 

switch hour { 
case 18...23: 
    print("True") 
default: 
    print("False") 
} 

このソリューションは、ユーザーのために働きます現在の時刻。 MST以外の人々もこのアプリを使用しますか?

-1

私はあなたがしていると思うように文字列で始まります(文脈を追加して、あなたが試したこと、または少なくともあなたが次回対処していることを説明してください)。

[Swift 3] 

// example of a date-time string 
let timeSubstring = "2016-08-06T18:16:11" 
// initialize 
let datetimeTime = DateFormatter() 
// provide format 
datetimeTime.dateFormat = "yyyy-MM-ddEEEEEHH:mm:ss" 

// converting from time zone 
datetimeTime.timeZone = TimeZone(identifier: "MST") 

// DateFormatter has been set up, now we can form the date properly 
let formDate = datetimeTime.date(from: timeSubstring) 

// create your upper and lower bounds (fill in) 
let topDate = datetimeTime.date(from: "XXXX-XX-XXXXX:XX:XX") 
let bottomDate = datetimeTime.date(from: "XXXX-XX-XXXXX:XX:XX") 

// make comparisons 
// checks condition left operand is smaller than right operand 
if formDate?.compare(other: topDate) == .orderedAscending { 
    // some code 
} 
// condition right smaller than left 
if formDate?.compare(other: bottomDate) == .orderedDescending { 
    // some code 
} 

それとも、同時に両方をチェックしている場合、それ& &します。

+0

あなたは誤ってそこに2つの 'bottomDate'宣言を持っています;) – Kametrixom

+0

@Kametrixomああああ、良い目 - ありがとう –

関連する問題