在我的應用程序中,我有一個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;
}
}
你必須至少也比較月,年(和時代)。以相反的順序進行。 –
@NikolaiRuhe哦,我忘記你了 –
最簡單的是今天12AM獲得一個NSDate值,然後比較NSDate值。 (請注意,必須根據您希望比較的時區調整NSDate值。) –