我想知道两个日期之间是否有两个日历日。
我尝试使用
NSDateComponents *components = [[NSCalendar currentCalendar] components:NSDayCalendarUnit fromDate:date toDate:now options:0];
NSInteger days = [components day];
并检查天数> = 2,但似乎仅在整天过去时计算天数。
例如,如果两个日期是:
星期一上午01:00
周日晚上11点
结果为0,
我期待得到1,因为星期天与星期一不同。
答案 0 :(得分:1)
您必须将两个日期“标准化”到相应日期的开始:
NSCalendar *cal = [NSCalendar currentCalendar];
NSDate *startOfToday, *startOfOtherDay;
[cal rangeOfUnit:NSDayCalendarUnit startDate:&startOfToday interval:NULL forDate:now];
[cal rangeOfUnit:NSDayCalendarUnit startDate:&startOfOtherDay interval:NULL forDate:date];
然后计算差异:
NSDateComponents *components = [cal components:NSDayCalendarUnit fromDate:startOfOtherDay toDate:startOfToday options:0];
NSInteger days = [components day];