2014-01-28 2 views
-2

이 답변을 찾았지만 불행히도 Java를 사용하고 있습니다. HHmm (콜론 없음)으로 포맷 된 두 번 있습니다. 얼마나 많은 15 분 시간 세그먼트가 차이인지 파악해야합니다. 예를 들어, 시작 시간은 1000이고 종료 시간은 1130 (군사 시간)입니다.두 시간의 차이를 시간으로 변환하는 방법은 무엇입니까?

두 날짜를 빼면 130이됩니다. 이는 계산에 아무런 의미가 없습니다.

나를 위해이 작업을 수행 할 기존 방법이 있습니까? (나는 지난 6 시간 동안 SO와 Google을 시험해 보았지만 아무 것도 발견하지 못했다.)

업데이트 : 누구든지 내게 그것을 거꾸러 뜨리십시오. 문제는 이며 매우과 관련이 있으며 다른 사람들이 유용 할 것입니다. 고맙습니다.

답변

2

사용 - [NSCalendar 구성 요소 : FROMDATE을 : TODATE : options] :

NSDateComponents *components = [[NSCalendar currentCalendar] components:NSCalenderUnitMinute fromDate:startDate toDate:endDate options:0]; 
NSInteger numberOfMinutes = [components minute]; 

일단 분이되면, 15 분으로 나누어서 15 분 단위의 청크를 얻으십시오.

+0

간단하고 정확하게 원했던대로 ... 고마워요. – SpokaneDude

3

매번 구문 분석하고 분으로 변환하십시오. 그래서 1000은 총 600 분 동안 10 시간 0 분이됩니다. 1130은 총 690 분 동안 11 시간 30 분이됩니다. 90 분 동안 두 값을 뺍니다.

NSString *startTime = @"1000"; 
NSString *endTime = @"1130"; 
int startMinues = [[startTime substringToIndex:2] intValue] * 60 + [[startTime substringFromIndex:2] intValue]; 
int endMinues = [[endTime substringToIndex:2] intValue] * 60 + [[endTime substringFromIndex:2] intValue]; 
int minutes = endMinutes - startMinutes; 
int units = minutes/15; 

이것은 당신의 15 개 블록의 전체 단위를 제공합니다 : 이제 다음은 항상 4 자리의 군사 배 가정 6.

얻기 위해 15 나눕니다.

+0

릭 ... 내가 원했던 방식으로 작동시키지 못했습니다 ... 죄송합니다 ... – SpokaneDude

0

사용해보십시오 NSDateComponents :

NSCalendar *calendar = [[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar] autorelease]; 
NSDateComponents *components = [calendar components:NSMinuteCalendarUnit|NSHourCalendarUnit 
             fromDate:dateA 
             toDate:dateB 
             options:0]; 
int increments = components.hour*4 + components.minute/15; 
0

형식 오히려 간단하다

int HHmm = [date intValue]; 
int HH = HHmm/100; 
int mm = HHmm % 100; 

DIFF, 두 날짜 구문 분석을 위해 :

int diff = ((HH2 * 60 + mm2) - (HH1 * 60 + mm1))/15; 
관련 문제