这是我第一次比较Objective-C中的日期。我已经在网上搜索了一段时间,发现的所有示例都涉及从字符串构建NSDate,因此我决定在此处提出一个新问题...
我的问题如下:
我需要知道两个NSDate是否在同一天,而忽略了时间。我得到了两个NSArray
,它们包含一组日期,并且一个接一个地排列,我需要确定第一个NSArray
中的哪个与第二个数组在同一天。
- (void)setActiveDaysColor:(UIColor *)activeDaysColor
{
for (DayView *actualDay in _days)
{
NSDate *actualDayDate = [actualDay date];
for (NSDate *activeDayDate in self.dates)
{
// Comparison code
// If both dates are the same, tint actualDay with a different color
}
}
}
在此先感谢您,祝您度过愉快的一天。
亚历克斯
最佳答案
通过省略时间部分来创建新日期。并使用比较方法之一
例
NSCalendar *calendar = [NSCalendar currentCalendar];
NSInteger components = (NSDayCalendarUnit | NSMonthCalendarUnit | NSYearCalendarUnit);
NSDateComponents *firstComponents = [calendar components:components fromDate:firstDate];
NSDateComponents *secondComponents = [calendar components:components fromDate:secondDate];
NSDate *date1 = [calendar dateFromComponents:firstComponents];
NSDate *date2 = [calendar dateFromComponents:secondComponents];
NSComparisonResult result = [date1 compare:date2];
if (result == NSOrderedAscending) {
} else if (result == NSOrderedDescending) {
} else {
}
关于objective-c - 两个NSDate之间的日期比较,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10733426/