2014-01-28 32 views
-2

我找到了答案,但不幸的是它使用了Java。我有兩次,格式化爲HHmm(沒有冒號)。我需要弄清楚有多少15分鐘的時間段存在差異。例如,我的開始時間爲1000,結束時間爲1130(軍事時間)。如何將兩次之間的差異轉換爲小時?

當我減去兩個日期時,我得到130,這對計算沒有意義。

有沒有現成的方法可以爲我做到這一點? (我花了最後6個小時嘗試SO和Google,但什麼也沒找到)。

UPDATE:如果誰低估了我的請倒退,我將不勝感激。問題是非常有用和其他人會發現它很有用。謝謝。

回答

2

使用 - [NSCalendar組件:FROM日期:TODATE :options],像這樣:

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

一旦你有分鐘數,它應該只是一個15分的問題,以獲得15分鐘的塊數。

+0

簡單,完全按照我的意思......謝謝。 – SpokaneDude

3

解析每次並轉換爲分鐘。所以1000變成10小時0分鐘,總計600分鐘。 1130成爲11小時30分鐘,共計690分鐘。減去兩個值的差值爲90分鐘。現在,通過15分得到6

以下假定所有時間都是4位數的軍事次:

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鐘座的整個單位。

+0

Rick ......無法按照我希望的方式工作......對不起...... – 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;