문제

형식으로 두 개의 시간 값이 있습니다 :%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로 이러한 값을 변환 할 수도 있습니다. 당신은 항상 참조 날짜와의 시차를 항상 저장할 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top