1

私のアプリケーションには、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;
    }
}
4

3 に答える 3