Как вы определяете количество дней между сейчас и 90 дней? - PullRequest
2 голосов
/ 16 января 2012

Итак, будучи новичком, я просмотрел Stackoverflow по этому вопросу и не нашел примера, похожего на то, что я ищу.Многие из примеров заботятся о високосном году / секундах.Я не.Мне просто нужно число от 0 до 90. Меня не беспокоит полдня и так далее.Пример: 1 января 2012 года @ 2359 - 2 января 2012 года @ 0001 = один полный день в моем счетчике.

Что мне нужно, так это установить дату, и по прошествии времени будет иметь обратный отсчет, показывающий «originalDate + 90 - Today's date».Как только 'originalDate + 90 - Today's date' = 0, просто покажите 0 с этого момента.

Как мне это сделать?

Спасибо.

Ответы [ 2 ]

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

Некоторые вещи, на которые стоит обратить внимание:

NSDate имеет метод с именем timeIntervalSinceDate. Используйте это, чтобы получить количество секунд между получателем и заданной датой.

Используйте NSDateComponents, чтобы настроить ваши "90 дней с этого момента", чтобы вы могли настроить количество секунд и все такое. Документация Apple описывает все это подробно.

Основные шаги, которые вы предпримете:

  • Сохранить "сейчас" как объект NSDate.
  • Создать объект NSDate на 90 дней.
  • Сравните два, сохраняя результат в NSInteger или double, если необходимо.
  • Сделайте что-нибудь с этим результатом. (Проверьте, например, больше ли он нуля.)
0 голосов
/ 16 января 2012

Сначала получите свою конечную дату от даты начала

NSTimeInterval ninetyDays = 90*24*60;
NSDate endDate = [NSDate dateWithTimeInterval:ninetyDays sinceDate:originalDate];

, затем удалите часть времени (часов, минут, секунд) ваших объектов NSDate:

NSDate *currentDateInDaysPrecision;
[calendar rangeOfUnit:NSDayCalendarUnit startDate:&currentDateInDaysPrecision
             interval:NULL forDate:[NSDate date]];

NSDate *endDateInDaysPrecision;
[calendar rangeOfUnit:NSDayCalendarUnit startDate:&endDateInDaysPrecision
             interval:NULL forDate:endDate];

Теперь вы можетеиспользуйте это, чтобы вычислить разницу в днях:

    // calculate the difference in days
NSDateComponents *difference = [calendar components:NSDayCalendarUnit
                                           fromDate:currentDateInDaysPrecision
                                             toDate:endDateInDaysPrecision
                                            options:0];
NSInteger differenceInDays = [difference day];

И это должно быть сделано.

edit:

Я узнал это от еще один SO ответ

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