回答
的NSDate的類有做的伎倆的方法timeIntervalSinceDate。
NSTimeInterval secondsBetween = [firstDate timeIntervalSinceDate:secondDate];
NSTimeInterval是一個雙精度值,表示兩次之間的秒數。
然後你必須做你自己的計算,把秒變成小時和分鐘。然後你必須將這些數字轉換成一個字符串。這是微不足道的,但它出現了很多。我建議創建工具類來做到這一點,並保持它的方便。 – TechZen
好的謝謝!現在我有秒這樣得到小時,我將通過3600除法。然後我得到1546521531. 你能給我任何提示嗎? – user134282
這裏是我快速的解決方案:
NSDateFormatter *df = [[[NSDateFormatter alloc] init] autorelease];
[df setDateFormat:@"HH:mm"];
NSDate *date1 = [df dateFromString:@"14:10"];
NSDate *date2 = [df dateFromString:@"18:09"];
NSTimeInterval interval = [date2 timeIntervalSinceDate:date1];
int hours = (int)interval/3600; // integer division to get the hours part
int minutes = (interval - (hours*3600))/60; // interval minus hours part (in seconds) divided by 60 yields minutes
NSString *timeDiff = [NSString stringWithFormat:@"%d:%02d", hours, minutes];
謝謝! mhh編譯器給我一個錯誤,說明initWithDateFormat ...不存在... – user134282
對不起,我用Mac OS SDK編寫了這個錯誤。已針對iPhone SDK進行了更正。 – amrox
偉大的代碼:)非常感謝。 – user134282
有沒有必要用手工計算這個,看看NSCalendar
。如果你想獲得的小時和分鐘兩個日期之間,使用這樣的:
NSCalendar *gregorianCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSUInteger unitFlags = NSHourCalendarUnit | NSMinuteCalendarUnit;
NSDateComponents *components = [gregorianCalendar components:unitFlags
fromDate:firstDate
toDate:otherDate
options:0];
[gregorianCalendar release];
您現在有小時和分鐘爲NSDateComponents並且可以訪問它們作爲NSIntegers
像[components hour]
和[components minute]
。這也將工作幾天,閏年和其他有趣的東西幾個小時。
NSString *duration = [self calculateDuration:oldTime secondDate:currentTime];
- (NSString *)calculateDuration:(NSDate *)oldTime secondDate:(NSDate *)currentTime
{
NSDate *date1 = oldTime;
NSDate *date2 = currentTime;
NSTimeInterval secondsBetween = [date2 timeIntervalSinceDate:date1];
int hh = secondsBetween/(60*60);
double rem = fmod(secondsBetween, (60*60));
int mm = rem/60;
rem = fmod(rem, 60);
int ss = rem;
NSString *str = [NSString stringWithFormat:@"%02d:%02d:%02d",hh,mm,ss];
return str;
}
這對我有用..非常感謝。 。 。 – iHart
- 1. 查詢一天內兩次之間的時間
- 2. 我們可以得到兩次輸入之間的時間嗎?
- 3. 兩個時間戳之間的天數
- 4. 兩個時間戳之間的天數
- 5. 每天兩次之間的SQL查詢
- 6. 獲得兩個時間之間的時間(一小時)
- 7. 兩天之間的天差
- 8. 兩天之間的天差
- 9. 兩次之間的時差
- 10. python找到兩次之間的一半時間
- 11. C#得到兩個日期時間範圍之間的時間
- 12. 時間戳。兩次之間的差異
- 13. 選擇兩次之間的時間mysql
- 14. 使用DateTimePicker得到兩天之間的天數
- 15. 獲得兩次給定時間之間的差異
- 16. 得到兩個之間的時間間隔的NSDate
- 17. 檢查時間在兩次之間
- 18. 在SQL之間檢查兩次之間的時間
- 19. 兩天之間的日子
- 20. 如何添加一天到從時間獲得的時間()
- 21. 使用時間計算兩次之間的中位時間
- 22. 兩次給定時間之間的等待時間
- 23. 當他們不在同一天時,我如何在兩個日期之間得到一個時間?
- 24. 如何找到兩次之間的時間跨度?
- 25. 如何找到兩次之間的時間?
- 26. 得到兩者之間的經過時間的javascript日期
- 27. 約達時間得到持續兩個時刻之間
- 28. 如何獲得兩個特定時間段之間的時間
- 29. 如何獲得兩列時間之間的時間?
- 30. 計算兩天之間的天數
您想如何呈現差異? NSString,NSNumber,int,float,另一個NSDate? – Eimantas
作爲NSString。 – user134282