코코아의 시차를 계산합니다
-
19-08-2019 - |
문제
형식으로 두 개의 시간 값이 있습니다 :%H%m%s (EG161500)
이 값은 텍스트 기반 정수입니다.
코코아에는 60 초 및 분 스케일을 사용 하여이 두 정수의 차이를 계산하는 간단한 기능이 있습니까?
그래서 만약
time 1 = 161500
time 2 = 171500
timedifference = 003000
해결책
NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setDateFormat:@"HHmmss"];
NSDate *date1 = [dateFormatter dateFromString:@"161500"];
NSDate *date2 = [dateFormatter dateFromString:@"171500"];
NSTimeInterval diff = [date2 timeIntervalSinceDate:date1]; // diff = 3600.0
다른 팁
날짜 조작에 대한 수업은 다음과 같습니다 NSDate
. 시간 간격을 얻는 방법은 다음과 같습니다 -timeIntervalSinceDate:
. 결과는 a NSTimeInterval
가치, a double
몇 초 만에 간격을 나타냅니다.
당신은 a를 만들 수 있습니다 NSDate
a NSString
~와 함께 +dateWithString:
, 날짜가 형식으로 형식화되면 2001-03-24 10:45:32 +0600.
이 코드를 시도하십시오.
- (NSTimeInterval)intervalBetweenDate:(NSDate *)dt1 andDate:(NSDate *)dt2 {
NSTimeInterval interval = [dt2 timeIntervalSinceDate:dt1];
NSLog(@"%f",interval);
return interval;
}
입력 데이터에서 해당 형식의 시간 값을 구문 분석하기 위해 nsformatter 서브 클래스를 생성합니다 (텍스트 필드에 하나를 넣어 사용자 입력을 자동으로 변환하거나 사용하여 코드의 데이터 소스에서 구문 분석 할 수 있습니다). NSNUMBER로 감싸인 NSTIMEINTERVAL (이중 표현 초)로 결합 된 초를 반환하도록하십시오. 거기에서 차이를 빼고 만든 동일한 nsformatter 클래스를 사용하여 표시 할 수 있습니다. 구문 분석 및 표시 값 모두에서 몇 초에서 시간으로 변환하는 코드를 작성하는 책임이 있습니다. 응용 프로그램에 적합한 경우 Mouviciel과 같이 NSDate로 이러한 값을 변환 할 수도 있습니다. 당신은 항상 참조 날짜와의 시차를 항상 저장할 것입니다.