Похоже, я не могу вычесть 7 дней из текущей даты. Вот как я это делаю:
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *offsetComponents = [[NSDateComponents alloc] init];
[offsetComponents setDay:-7];
NSDate *sevenDaysAgo = [gregorian dateByAddingComponents:offsetComponents toDate:[NSDate date] options:0];
SevenDaysAgo получает то же значение, что и текущая дата.
Пожалуйста помоги.
РЕДАКТИРОВАТЬ: В моем коде я забыл заменить переменную, которая получает текущую дату, на правильную. Итак, приведенный выше код работает.
objective-c
ios
nsdate
Алекс Тау
источник
источник
[NSDate dateWithTimeIntervalSinceReferenceDate:[NSDate date].timeIntervalSinceReferenceDate - (7*24*60*60)]
- Хотя он не обрабатывает изменения летнего времени.Ответы:
используйте метод dateByAddingTimeInterval:
вывод:
Надеюсь, поможет
источник
[now dateByAddingDays:-7]
код:
вывод:
И я полностью согласен с JeremyP.
BR.
Евгений
источник
Если вы используете хотя бы iOS 8 или OS X 10.9, есть еще более чистый способ:
Или со Swift 2:
А с Swift 3 и выше он становится еще компактнее:
источник
Swift 3
источник
Swift 4.2 - Mutate (Обновление) на себя
Вот еще один способ, которым исходный постер может получить неделю назад, если у него уже есть переменная даты (обновляется / изменяется сам).
использование
или
источник
Ответ dymv отлично работает. Это вы можете использовать быстро
Вы можете назвать это с помощью
Надеюсь, это поможет и спасибо dymv
источник
Swift 4.2 iOS 11.x Решение Babec , чистый Swift
источник
Расширение оператора Swift:
использование
источник
Swift 3.0+ версия исходного принятого ответа
Дата (). AddTimeInterval (-7 * 24 * 60 * 60)
Однако здесь используются только абсолютные значения. В большинстве случаев, вероятно, больше подходит использование ответов из календаря.
источник
Swift 3:
Модификация ответа Дов.
Использование:
источник
numberOfDays
необязательно, а затем принудительно разворачивается? Разве это не должно быть просто обязательнымInt
?ДЛЯ SWIFT 3.0
вот функция, вы можете сократить дни, месяц, день на любое количество, например, здесь, я уменьшил год текущей системной даты на 100 лет, вы можете сделать это для дня, месяца, также просто установите счетчик и сохраните его в array, вы можете этот массив где угодно, затем func currentTime ()
источник