Как получить дату неделей ранее с сегодняшнего дня?

#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. потрясающе, я не знал, что вы можете вот так просто вычитать