0

日付が今日より前であるかどうかをチェックするforループを実行するメソッドを作成しようとしています。日付が今日より前である場合は、NSDateComponentでインクリメントする必要があります。

日付が今日より前かどうかを確認する方法:

- (BOOL) isDatePassedToday:(NSDate *)recurringDate
{
    if ([recurringDate compare:[NSDate date]] == NSOrderedDescending)
        return NO;

    return YES;
}

forループが機能するために必要なロジック:

-(NSDate *)calculateRecurringReminder:(NSDate *)startDate using:(NSDateComponents*)doItAgainComponents
{
    NSDate *recurringDate = [[NSDate alloc]init];

    recurringDate = [[NSCalendar currentCalendar] dateByAddingComponents:doItAgainComponents toDate:recurringDate options:0];

    // The loop to add components
    for ([self isDatePassedToday:recurringDate]; [self isDatePassedToday:recurringDate] == YES; doItAgainComponents)
    {

        recurringDate = [[NSCalendar currentCalendar] dateByAddingComponents:doItAgainComponents toDate:recurringDate options:0];

    }

    return recurringDate;
}
4

1 に答える 1

0

おそらくあなたはこれを意味します:

-(NSDate *)calculateRecurringReminder:(NSDate *)startDate using:(NSDateComponents*)doItAgainComponents {
    NSDate *recurringDate = startDate;

    while (![self isDatePassedToday:recurringDate]) {
        recurringDate = [[NSCalendar currentCalendar] dateByAddingComponents:doItAgainComponents toDate:recurringDate options:0];
    }

    return recurringDate;
}
于 2013-03-04T14:51:38.507 に答える