2012-02-17 38 views
0

我有NSDate對象的兩個實例,它們表示一個電影文件的開始時間和結束時間。認爲他們是簡單的算法格式化NSDate的2個實例

NSDate *startDate = [formatter dateFromString:startDateString]; 
    NSDate *endDate = [formatter dateFromString:endDateString]; 

所以現在我需要從他們形成一個NSArray將每個元素在他們的時間差一個小時。說得簡單,我舉個例子,已開始日期

2012/02/16T22:00

和結束日期

2012/02/17T03:30

現在我需要的是以下對象的數組:

2012/02/16 T 22:00 
2012/02/16 T 23:00 
2012/02/17 T 00:00 
2012/02/17 T 01:00 
2012/02/17 T 02:00 
2012/02/17 T 03:00 

我該如何做到這一點?

+0

你的輸入日期是字符串像** 2012/02/16T22:00 **或實際的NSDate對象? – sch 2012-02-17 17:46:08

+0

輸入是具有定義的timeZone的兩個實際NSDate對象。作爲字符串或日期的輸出類型不重要,因爲它們很容易轉換。 – Eugene 2012-02-17 17:48:03

+0

我不知道我是否完全明白...不能只使用NSMutableArray和addObject方法。每個NSDate之間的時間總是一小時?如果是這樣,爲什麼不只設置一次startTime並創建一個循環,在最後一個NSdate上增加1小時並添加到數組中?或者你爲什麼不簡單地創建一個你需要的所有信息並將其添加到數組中的類? – 2012-02-17 17:48:07

回答

4

以下代碼將爲您提供一小時增量的日期數組。

NSMutableArray *dates = [NSMutableArray array]; 
NSDate *date = startDate; 
while ([date compare:endDate] == NSOrderedAscending) { 
    [dates addObject:date]; 
    date = [NSDate dateWithTimeInterval:3600 sinceDate:date]; 
}