我有一个非常有趣的问题:计算两个日期之间的天数时,我的计算器只给出了三月份的错误结果。我有两个文本字段,每个日期一个。如果我在 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。每个月都按预期工作,只有三月份给了我错误的结果。有谁知道我错过了什么?这是时区问题吗?我如何解决它?这是我的代码:
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]