2011-01-19 95 views
0

我有三個字符串如何在iphone中添加時間?

str1 = @「00:14」; str2 = @「00:55」; str3 = @「00:10」;

我需要將三個字符串添加爲一個整數,顯示在同一時間格式

我該怎麼辦,請幫我

由於提前

回答

2

與可可日期的工作是樂趣!你可以創建這樣的方法:

- (NSDate *)dateByAddingDates:(NSArray *)dates { 
    NSCalendar *calendar = [NSCalendar currentCalendar]; 
    unsigned unitFlags = NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit; 
    NSDate *date = [dates objectAtIndex:0]; 
    for (int i = 1; i < [dates count]; i++) { 
    NSDate *newDate = [dates objectAtIndex:i]; 
    NSDateComponents *comps = [calendar components:unitFlags fromDate:newDate]; 
    date = [calendar dateByAddingComponents:comps toDate:date options:0]; 
    } 
    return date; 
} 

而且使用這樣的:

NSString *str1 = @"00:14"; 
    NSString *str2 = @"00:55"; 
    NSString *str3 = @"00:10"; 

    NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease]; 
    [dateFormatter setDateFormat:@"mm:ss"]; 

    NSArray *dates = [NSArray arrayWithObjects:[dateFormatter dateFromString:str1], 
        [dateFormatter dateFromString:str2], 
        [dateFormatter dateFromString:str3], nil]; 
    NSDate *date = [self dateByAddingDates:dates]; 

    NSLog(@"%@", [dateFormatter stringFromDate:date]); 
0

要正確地做事情,它會是這樣的:

  • 使用NSDateFormatter將字符串轉換爲NSDate objec TS。
  • 使用[NSCalendar currentCalendar]來提取每個日期的NSDateComponents,特別是NSMinuteCalendarUnit
  • 添加了日期組件的所有分鐘,並設置成一個NSDateComponent對象
  • (可選)使用日曆的NSDateComponent轉換回一個NSDate

做事情愚蠢,:後,你會得到字符的字符串,調用它intValue打開字符串轉換爲int,然後說起來。我不建議這樣做,因爲它可能導致微妙和迂迴的錯誤。另外,已經有代碼可以爲你做。 :)

0

退房此相關的主題:Comparing dates

在總結

,第一解析字符串作爲使用initWithString NSDates:方法調用。之後,您可以按照自己的意願添加和操作日期,最後只需將其格式化爲正確的輸出。

希望這個希望能夠澄清你的疑問。

者均基於Mac開發者SDK參考可以在這裏找到你的信息: - http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSDate_Class/Reference/Reference.html#//apple_ref/occ/cl/NSDate