2017-03-16 1 views
-2

두 개의 Doubles가 있고 두 개의 double과 일치하는 시간 간격으로 NSDate를 쿼리해야합니다 .. Double을 NSDate로 Double을 일치시켜 어떻게 변환 할 수 있습니까? :) 전혀 가능하다면 ..Convert double을 NSDate로 변환하여 구문 분석을 쿼리합니다.

편집 : 죄송합니다. 서둘러 - 사과드립니다. 내가 가지고있는 복식은 8.00 또는 17.00처럼 하루 중 시간을 나타냅니다. 그래서 NSDate의 시간으로 Double을 변환해야합니다.

+1

자세한 내용을 입력해야합니다. 숫자가 무엇을 나타내는 지 아십니까? 'NSDate' (또는'Date')에 대한 문서를 보셨습니까? – rmaddy

+0

@rmaddy - 답장을 보내 주셔서 감사합니다! 나는 내 질문을 업데이 트했습니다, 어쩌면 그것은 더 의미가 있습니다 :)하지만 나는 문서를 보게 될 것입니다 - 왜 그런 생각을하지 않았는지 모르겠군요 .. –

답변

0

간단한 사용 timeIntervalSince1970 및 이중 값 전달 매개 변수로.

let date = NSDate(timeIntervalSince1970: doubleValue) 
+0

이것은 OP가 나타내는 시간을 가정합니다 1970 년 1 월 1 일 이후의 간격. – rmaddy

+0

죄송합니다. 제 질문은 너무 명확하지 않았습니다. 8.00 (아침에), 오후에 16.00과 같은 Double과 일치하는 시간으로 현재 날짜의 NSDate가 필요합니다. –

0

답안에서 약간의 힌트가있는 해결책을 찾았습니다. 다음은 내가 끝낸 결과이며 완벽하게 작동합니다.

let date = NSDate() 
let cal = NSCalendar(calendarIdentifier: NSCalendarIdentifierGregorian)! 
let newDate = cal.startOfDayForDate(date) 

let secondsSince1970ToYesterdayAt23 = newDate.timeIntervalSince1970 
let secondsInOneHour = 3600.0 

let secondsSince1970FromMidnight = secondsSince1970ToYesterdayAt23 + secondsInOneHour 

let secondsFromMidnightToStartTime = (secondsInOneHour * (slider?.lowerValue)!) + secondsSince1970FromMidnight 
let dateWithStartTime = NSDate(timeIntervalSince1970: secondsFromMidnightToStartTime) 

let secondsFromMidnightToEndTime = (secondsInOneHour * (slider?.upperValue)!) + secondsSince1970FromMidnight 
let dateWithEndTime = NSDate(timeIntervalSince1970: secondsFromMidnightToEndTime) 

print("Start \(dateWithStartTime)") // Returning 2017-03-18 08:00:00 +0000 
print("End: \(dateWithEndTime)") // Returning 2017-03-18 17:00:00 +0000 
관련 문제