2011-03-07 42 views
1

我是我的應用程序我有一個NSMutableArray,每個條目都有一個帶有幾個鍵值對的NSMutableDictionary。其中一對包含條目的日期。對於我的應用程序的功能之一,我需要確定哪些條目距離彼此完全相隔1周(即從週日到週日),並對該周的每一天的鍵值對之一進行求和。如何確定兩個NSDates相隔1周?

我應該怎麼做呢?

注意:星期天到星期日,我的意思是星期天一般,並不完全是星期天晚上9點到星期日晚上9點。

+0

週日至週六不是「完全相隔一週」。那是六天和一小部分。 – FreeAsInBeer 2011-03-07 00:17:16

+0

請不要只標記平臺。 – 2011-03-07 01:14:47

回答

0

看一看使用NSDateComponents。您可以將日期A和日期B都轉換爲日期分量,然後檢查差異7.

3

您可以按日期對日期進行排序(例如,按升序排列)。之後,您可以計算所有後續日期之間的差異,基本上爲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;