Сравнение NSDates, чтобы проверить, находится ли сегодня между - PullRequest
3 голосов
/ 09 мая 2011

благодаря вам, ребята, я успешно преобразовал мой массив строк в NSDates.Теперь я пытаюсь проверить, попадает ли сегодняшняя дата между моими 2 датами (а именно, fromDate и toDate).Я видел следующие вопросы, но не смог реализовать их в своем коде.Прекрасно, у меня может быть любой другой метод или помощь в использовании решений, предоставленных пользователями.

NSDate между двумя заданными NSDates

Как проверить, еслиNSDate происходит между двумя другими NSDates

Как я могу проверить, попадает ли NSDate между двумя другими NSDates в NSMutableArray

Это то, что у меня сейчас есть:

NSDateFormatter *format = [[NSDateFormatter alloc] init];
[format setDateFormat:@"yyyy-MM-dd"];
NSTimeZone *tz = [NSTimeZone localTimeZone];
[format setTimeZone:tz];
NSDate *now = [[NSDate alloc] init];
NSString *todaysDate = [format stringFromDate:now];
NSLog(@"todaysDate: %@", todaysDate);

//converting string - date
int size = [appDelegate.ALLevents count];
for (NSUInteger i = 0; i < size; i++) {
    Event *aEvent = [appDelegate.ALLevents objectAtIndex:i];

    //Convert fromDate
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"dd-MM-yyyy"];
    NSDate *fromDate = [dateFormatter dateFromString:aEvent.fromDate];
    [dateFormatter setTimeZone:tz];
    NSLog(@"fromDate: %@", fromDate);

    //Convert toDate
    NSDate *toDate = [dateFormatter dateFromString:aEvent.toDate];
    NSLog(@"toDate: %@", toDate);
    [dateFormatter release];
    //Compare if today falls in between
            //codes here
    }

1 Ответ

5 голосов
/ 09 мая 2011

Сделайте следующее,

NSTimeInterval fromTime = [fromDate timeIntervalSinceReferenceDate];
NSTimeInterval toTime = [toDate timeIntervalSinceReferenceDate];
NSTimeInterval currTime = [[NSDate date] timeIntervalSinceReferenceDate];

NSTimeInterval в основном является двойным типом, поэтому вы можете сравнить, что если currTime больше одного и меньше другого, то дата попадает между этими двумя NSDates.

...