Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Как определить, прошло ли NSDate (включая время)

Автор вопроса: TheLearnerОтветов: 3

Как определить, прошло ли NSDate (включая время)? Мне нужно в основном сравнить сегодняшнюю дату с датой в БД, но я в тупике.

iphonecocoa-touchobjective-cnsdate

Ответы

Ответ 1 · рейтинг 92 · mattjgalloway

Попробуй это:

if ([someDate timeIntervalSinceNow] < 0.0) {
    // Date has passed
}

Ответ 2 · рейтинг 6 · Nik Burns

вам нужно использовать сравнение NSDate, многие ответы здесь помогут вам.

iOS: сравнение двух дат

логика потребует настройки, но это должно направить вас в правильном направлении:

- (BOOL)date:(NSDate*)date isBefore:(BOOL)before otherDate:(NSDate*)otherDate ;
{
    if(before && ([date compare:otherDate] == NSOrderedAscending))
        return YES;
    if (!before && ([date compare:otherDate] == NSOrderedDescending))
        return YES;
}

использование:

if([self date:yourDate isBefore:YES otherDate:[NSDate date]])

Ответ 3 · рейтинг 2 · Simon Withington

Ты можешь использовать

[NSDate date];

чтобы получить объект NSDate, представляющий текущее время и дату.

Затем сравните это с датой, которую вы анализируете, например:

if ([currentDate timeIntervalSince1970] > [yourDate timeIntervalSince1970]) {
// yourDate is in the past
}

вы можете использовать это, чтобы сравнить любые две даты. Надеюсь это поможет.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы