我是我的應用程序我有一個NSMutableArray,每個條目都有一個帶有幾個鍵值對的NSMutableDictionary。其中一對包含條目的日期。對於我的應用程序的功能之一,我需要確定哪些條目距離彼此完全相隔1周(即從週日到週日),並對該周的每一天的鍵值對之一進行求和。如何確定兩個NSDates相隔1周?
我應該怎麼做呢?
注意:星期天到星期日,我的意思是星期天一般,並不完全是星期天晚上9點到星期日晚上9點。
我是我的應用程序我有一個NSMutableArray,每個條目都有一個帶有幾個鍵值對的NSMutableDictionary。其中一對包含條目的日期。對於我的應用程序的功能之一,我需要確定哪些條目距離彼此完全相隔1周(即從週日到週日),並對該周的每一天的鍵值對之一進行求和。如何確定兩個NSDates相隔1周?
我應該怎麼做呢?
注意:星期天到星期日,我的意思是星期天一般,並不完全是星期天晚上9點到星期日晚上9點。
看一看使用NSDateComponents。您可以將日期A和日期B都轉換爲日期分量,然後檢查差異7.
您可以按日期對日期進行排序(例如,按升序排列)。之後,您可以計算所有後續日期之間的差異,基本上爲diff[n] = dayDiff(dates[n], dates[n-1])
。因此,對於每個dates[n]
,您可以在相當快的7天內找到一個日期 - 只需從n
中總計diffs
,直到達到數組末尾(=>沒有這樣的日期)或總和等於7(=>您找到它)或總和大於7(=>沒有這樣的日期)。
不要試圖使用毫秒或類似的東西來獲得天差異。從某個參考點開始,日期遠遠超過毫秒。使用NSCalendar
爲此
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *cs = [calendar components:NSDayCalendarUnit
fromDate:date1
toDate:date2
options:0];
NSInteger diffInDays = cs.days;
週日至週六不是「完全相隔一週」。那是六天和一小部分。 – FreeAsInBeer 2011-03-07 00:17:16
請不要只標記平臺。 – 2011-03-07 01:14:47