2012-02-15 78 views
0

我與價值@"1:10:39"IOS時間爲int分鐘

什麼是這個時候分鐘轉換最快/最便捷的方式的NSString?例如。 70.65

我並不是要求在這裏發表意見,只有在您感覺舒適時才顯示代碼。我主要在尋找一個建議。 謝謝

回答

2

這是一種方法。

NSString *zeroString = @"00:00:00"; 
NSString *timeString = @"1:10:39"; 
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"HH:mm:ss"]; 
NSDate *zeroDate = [dateFormatter dateFromString:zeroString]; 
NSDate *offsetDate = [dateFormatter dateFromString:timeString]; 
NSTimeInterval timeDifference = [offsetDate timeIntervalSinceDate:zeroDate]; 
CGFloat minutes = (timeDifference/60); 
NSLog(@"%0.2fmins",minutes); 
+0

+1對所有人都是好的和可用的。不過,我從來沒有這樣計算時間,所以得到了獎品。謝謝! – Jacksonkr 2012-02-16 00:38:50

+0

不客氣。乾杯! – JacobFennell 2012-02-16 00:43:44

1

我會使用NSStringcomponentsSeparatedByString使包含字符串的數組‘1’,‘10’和‘39’的順序,然後從該陣列拉的值並對其執行integerValue轉換爲數字,並對這些進行必要的算術運算,確保檢查數組中正好有三件事作爲驗證步驟並避免異常。

1
NSString *timeString = @"1:10:39"; 
NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
formatter.dateFormat = @"hh:mm:ss"; 
NSDate *timeDate = [formatter dateFromString:timeString]; 

formatter.dateFormat = @"hh"; 
int hours = [[formatter stringFromDate:timeDate] intValue]; 
formatter.dateFormat = @"mm"; 
int minutes = [[formatter stringFromDate:timeDate] intValue]; 
formatter.dateFormat = @"ss"; 
int seconds = [[formatter stringFromDate:timeDate] intValue]; 

float timeInMinutes = hours * 60 + minutes + seconds/60.0;