在我的应用程序中,我有一个 NSDate 实例列表。在某一时刻,我需要将过去到今天的日期分开,即[NSDate date]
(早于 12 日早上)并且我使用了如下逻辑。我觉得必须有比这更好的逻辑,所以如果有更好的解决方案,请帮助我。
我将日期实例作为参数传递给此方法,该方法将返回与我的要求相对应的 BOOL 值。
-(BOOL)checkIfPast:(NSDate *)date
{
NSDate *today=[NSDate date];
NSUInteger dateFlags = NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit;
NSCalendar *gregorianCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *components1=[gregorianCalendar components:dateFlags fromDate:today];
NSDateComponents *components2=[gregorianCalendar components:dateFlags fromDate:date];
if (components2.day-components1.day<0) {
return YES;
}
else
{
return NO;
}
}