Нужен совет по сравнению времени с использованием NSDate - PullRequest
1 голос
/ 02 июня 2010

Я занимаюсь разработкой будильника. Я хочу сравнить время сейчас и установить время. Можно ли сравнивать только в минутах.

Моя проблема: NSDate будет сравниваться в секундах, например, 9:38:50 не равно 9:38:00 как я могу сравнить в минутах?

Ответы [ 2 ]

5 голосов
/ 02 июня 2010

Сначала преобразуйте их в метку времени UNIX, игнорируя миллисекунды.

NSUInteger time1 = (NSUInteger)[date1 timeIntervalSince1970];
NSUInteger time2 = (NSUInteger)[date2 timeIntervalSince1970];

Игнорировать секунды.

time1 = time1 - (time1 % 60);
time2 = time2 - (time2 % 60);

Теперь вы можете спокойно сравнивать их.

if (time1 == time2) {
  NSLog(@"Bingo");
}
2 голосов
/ 02 июня 2010

Используйте NSCalendar , чтобы получить NSDateComponents , которые вас интересуют. Тогда их легко сравнить.

Хотя может быть достаточно проверить, является ли текущая дата более поздней, чем дата будильника. Если это так, и сигнал тревоги не был отключен, вам, вероятно, следует отключиться, даже если компьютер на мгновение потерял питание или что-то в этом роде.

...