2009-09-15 41 views
7

Tôi có 2 mảng có giá trị thời gian trong đó. Chúng có định dạng sau. mm: ss: hàng trăm giây. Tôi muốn có được sự khác biệt giữa hai [lastObjects] trong mảng. NSDate không hoạt động vì giá trị cuối cùng bằng một phần trăm giây.Cách nhận chênh lệch thời gian trong iPhone

Câu hỏi. Nếu ngày thứ hai lớn hơn lần đầu tiên nó sẽ cho tôi một số âm như -01: 10: 00?

+0

không có nó không làm việc cho tôi. –

+0

Bạn không được phép sao chép câu trả lời vào câu hỏi của mình. Nếu câu trả lời cần làm rõ, bạn bình luận về câu trả lời và tác giả của câu trả lời sẽ trả lời. Giải pháp tôi đã cung cấp cho bạn là đủ để chỉ cho bạn đúng hướng. Tài liệu cho NSDateFormatter sẽ cho bạn biết mọi thứ bạn cần biết về phân tích cú pháp thời gian và tài liệu cho NSDate sẽ cho bạn biết mọi thứ bạn cần biết về việc tìm sự khác biệt giữa các lần, bao gồm cả hành vi của ngày giống nhau và khoảng thời gian âm. –

+0

Rất tiếc, nó đã quá đủ. Tôi xin lỗi vì không tuân theo giao thức. –

Trả lời

36

Vấn đề của bạn có hai phần, phân tích thời gian và nhận được sự khác biệt:

NSDateFormatter* dateFormatter = [[[NSDateFormatter alloc] init] autorelease]; 
[dateFormatter setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"] autorelease]]; 
[dateFormatter setDateFormat:@"mm:ss:SS"]; 

NSDate* firstDate = [dateFormatter dateFromString:@"01:00:00"]; 
NSDate* secondDate = [dateFormatter dateFromString:@"01:02:00"]; 

NSTimeInterval timeDifference = [secondDate timeIntervalSinceDate:firstDate]; 
+2

Khoảng thời gian NSTimeInterval = [secondDate timeIntervalSinceDate: firstDate]; –

1

NSDate sẽ hoạt động với bạn, sử dụng timeIntervalSinceDate:, trả về khoảng thời gian có độ chính xác mili giây.

+1

Thực ra nó chính xác đến một phần nghìn giây. Tuy nhiên, nó được biểu diễn bằng SECONDS. – DanM

Các vấn đề liên quan