Как рассчитать, если текущее время находится в промежутке времени - PullRequest
0 голосов
/ 24 марта 2012

Я работаю над приложением iphone для класса, и у моей группы есть проблемы с временем.

Идея, с которой мы работаем, заключается в том, что у нас запланировано мероприятие (скажем, в 14:00), и мы хотимзнать, если мы находимся в течение определенного времени от запланированного времени (скажем, +/- 15 минут).Так что для этого примера, если событие было в 2 часа дня, если это событие было вызвано с 1: 45-2: 15 вечера, метод вернул бы true / yes, а в противном случае он возвратил бы false / no.

Я знаюКак узнать текущее время / дату, но как мне выполнить проверку, чтобы увидеть, находится ли она в определенном диапазоне времени от времени события??

Итак, я собираюсь использовать метод, подобный следующему: currentTime получает объект NSDate для текущего времени, а classStartTime - объект NSDate для времени начала класса:

- (BOOL)dateInRange:(NSDate*)currentTime inRangeOf:(NSDate*)classStartTime
{
    if([currentTime <= [classStartTime dateByAddingTimeInterval:60*15]] && [currentTime >= [classStartTime dateByAddingTimeInterval:-(60*15)]])
    {
        return TRUE;
    }
    else{
        return FALSE;
    }
}

Я знаю, что это не работает.Как заставить часть сравнения оператора if работать правильно

Ответы [ 3 ]

0 голосов
/ 24 марта 2012

Используйте NSDate и NSDateComponents. У меня нет Mac поблизости, поэтому следующий код, вероятно, будет содержать ошибки.

NSCalendar *gregorian = [[NSCalendar alloc]initWithCalendarIdentifier:NSGregorianCalendar];
int comp = NSHourCalendarUnit | NSMinuteCalendarUnit;
NSDateComponents *theDateComponents = [gregorian components:comp fromDate:[NSDate date]];
int hour = [theDateComponents hour];
int minute = [theDateComponents minute];
if ((hour == 13 && minute >= 45) || (hour == 14 && minute <= 15)) {
  //do your stuff
}

Надеюсь, это поможет

0 голосов
/ 25 марта 2012

Найти дату начала и дату окончания с + (id) dateWithTimeInterval: (NSTimeInterval) секунд с даты: (NSDate *) дата

затем используйте метод сравнения, чтобы проверить, что проверяемая вами дата соответствует вашим датам ...

0 голосов
/ 24 марта 2012

Полагаю, ваше время - NSDate.Вы можете использовать TimeIntervalSinceDate: со временем начала вашего интервала и проверить, является ли результат положительным и меньше, чем длина вашего интервала.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...