2017-11-07 1 views
0

전적으로 iPhone 앱 개발에 새로운입니다. 나는 min_date와 max_date 사이의 차이를 몇 시간 만에 찾으려고 노력하고 있습니다. 텍스트 필드에 값을 저장하려고합니다. 친절하게 두 날짜의 차이를 찾기위한 완전한 코드를 제공하십시오. 예 : min_date : 12/07/1989, 오전 12:00 및 max_date : 13/07/1989,12 : 00 am 인 경우 총 시간은 24 시간입니다. 신속한 3.0 코드를 제공해주세요.최소 날짜와 최대 날짜 간의 시간 차이

let hours = timeInterval/60/60 

당신은 바닥이나 천장이 번호를 선택할 수 있습니다 시간의 수를 계산하는

let timeInterval = max_date.timeIntervalSince(min_date) 

그런 다음 당신은 몇 가지 수학을 수행 할 수 있습니다

+0

[(월/일 /시/분/초)로 두 NSDate의 차이 얻기] 가능한 복제본 (https://stackoverflow.com/) 질문/27182023/get-the-difference-between-two-nsdates-in-months-days-hours-minutes-seconds) –

답변

1

첫째, 초 차이를 얻을 수 timeIntervalSince를 사용 , 귀하의 요구 사항에 따라.

+0

이 오류를 발견했습니다. 'String'유형의 값에 'timeIntervalSince'멤버가 없습니다. (나는 var_max_date와 var_min_date에서 문자열을 취하고있다. max_date = dateFormatter.string (datePicker.date) print ("FromDate : \ (max_date)") min_date와 비슷하다. like like timeInterval = max_date.timeIntervalSince (min_date) let hours = timeInterval/60/60) – Ruchi

+0

@Ruchi 맞아요, 그래서 당신은 문자열로 작업하고 있습니다. 문자열을 날짜로 변환하는 방법을 찾으십시오. – Sweeper

+0

이 코드는 저에게 효과적이었습니다. 스위퍼 정말 고마워. – Ruchi

0
let previousDate = ... 
let now = Date() 

let formatter = DateComponentsFormatter() 
formatter.unitsStyle = .full 
formatter.allowedUnits = [.month, .day, .hour, .minute, .second] 
formatter.maximumUnitCount = 2 // often, you don't care about seconds 
if the elapsed time is in months, so you'll set max unit to whatever is 
appropriate in your case 

let string = formatter.string(from: previousDate, to: now) 
0
let minDate = Date() // your min date 

let maxDate = Date() // your max date 

let components = Calendar.current.dateComponents([.hour], from: minDate, to: maxDate) 

이 두 날짜 사이의 검색 차이가 가장 유연한 방법입니다. 다른 구성 요소를 사용하여 월, 일, 년 등을 검색 할 수 있습니다.