我有一個非常有趣的問題:當計算兩個日期之間的天數時,我的計算器在3月份給出了錯誤的結果只有。我有兩個文本字段,每個日期一個。如果我在date1中輸入3/7/12,在date2中輸入3/13/12,結果是7,這是正確的(我也計算第一天)。但是當我輸入date1 = 3/7/12和date2 = 3/14/12時,結果仍然是7,但它應該是8.同樣,如果我輸入date1 = 3/7/12和date2 = 3/23/12,結果應該是17,但是它是16.如果我將月份更改爲4月,那麼date1 = 4/7/12和date2 = 4/23/12,結果是17.每月按照預期工作,只有三月份給我錯誤的結果。有沒有人有任何想法我失蹤?這是一個時區問題嗎?我如何解決它?這裏是我的代碼:3月份日期之間的錯誤日
NSDateFormatter *dateFormatter1 = [[NSDateFormatter alloc] init];
[dateFormatter1 setDateFormat:@"MM/dd/yyyy"];
NSDate *startdate1 = [dateFormatter1 dateFromString: date1.text];
NSDateFormatter *dateFormatter2 = [[NSDateFormatter alloc] init];
[dateFormatter2 setDateFormat:@"MM/dd/yyyy"];
NSDate *enddate2 = [dateFormatter2 dateFromString: date2.text];
int start1 = [startdate1 timeIntervalSince1970];
int end2 = [enddate2 timeIntervalSince1970];
double difference12 = end2-start1;
int days12;
days12 =(int)((double)difference12/(3600.0*24.00)+1);
result12.text = [[NSString alloc] initWithFormat:@"%i", days12]
在美國,夏令時間爲3月11日,2012年(這是3月10日,2013年)。假設你在美國,當兩個日期跨越3月11日(或10日)時,這可能會推遲計算。 – rmaddy 2013-02-11 05:22:30