Как правильно округлить NSDate на iOS? - PullRequest
1 голос
/ 21 января 2012

Мне нужно получить текущую дату, но игнорировать минуты и секунды, а затем вычислить интервал.

Например, скажем, что сейчас 7:30 утра, и мне нужно посмотреть, сколько часов этодо 17:00 следующего дня, не считая минут, что означает, что 7:30 утра должны равняться 7:00 в этом сценарии, и результат должен быть 22 часа.

Это можно легко сделать с помощью

- (NSTimeInterval)timeIntervalSinceDate:(NSDate *)anotherDate

при условии, что я могу создать оба конца интервала.

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

Что мне в основном нужно сделать, это обрезать NSDate с определенной точностью, например днями, и обрезать остальные (7:50до 7:00 и т. д.).

Или есть какой-нибудь простой способ сделать это более разумным способом, где 7:50 округляется до 8:00 вместо 7: 00?

Мне нужно сделать это на iOS 5.

1 Ответ

2 голосов
/ 21 января 2012

Расчеты можно выполнять с помощью NSCalendar, вместо анализа вы можете использовать NSDateComponents. Когда вы берете часы и минуты у NSDateComponents, вы можете легко применить округление и преобразовать компоненты обратно в дату.

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