#ios #objective-c #iphone #nsdate
#iOS #objective-c #iPhone #nsdate
Вопрос:
Я знаю, как получить дату в iOS. Мне нужно найти дату за последние недели. Так, например, если сегодня 27.05.2011, мне нужно иметь возможность получить 20.05.2011
Спасибо
Комментарии:
1. Вы проверили документацию для NSDate?
Ответ №1:
Это грубо, но сработает:
NSDate *prevWeekDate = [currentDate dateByAddingTimeInterval:(-60 * 60 * 24 * 7)];
Нажмите для получения подробной информации на dateByAddingTimeInterval:
Комментарии:
1. разве там не должно быть отрицательного значения?
2. разве это не увеличило бы дату через 7 дней, а не уменьшило бы ее?
3. На мой взгляд, это выглядит неплохо, так при каких условиях это решение является грубым? Я не вижу никаких минусов, кроме 29 февраля високосного года? Но, может быть, это сработало бы нормально для?
4. Мой способ работает, но у @Desdenova это способ Apple. Таким образом, это «более правильный» способ.
Ответ №2:
Как насчет:
NSCalendar * calendar = [NSCalendar currentCalendar]; NSDate * дата = [Дата NSDate]; NSDateComponents *components = [[NSDateComponents alloc] инициализация]; [набор компонентов на неделю: -1]; NSDate * lastweek = [calendar datebyadding components:компоненты на сегодняшний день: параметры даты: 0]; NSLog(@"% @", прошлая неделя); [выпуск компонентов];
Комментарии:
1. ДА. Это был бы элегантный способ. 🙂
2. потрясающе, я не знал, что вы можете вот так просто вычитать