2016-07-01 5 views
3

Мне нужно показать только семь дней. Как это сделать с помощью UIDatePicker и как мы устанавливаем минимальные и максимальные даты для UIDatePicker. Заранее спасибо.Как показать только 7 дней в UIDatePicker в iOS?

+0

Вы спрашиваете, например, как установить минимальный быть * сегодня * и максимум будет * 7 дней с сегодняшнего дня *? – christopherdrum

+0

Да @christopherdrum. –

+0

Вы хотите показать семь дней и минимум, максимальную дату? – user3182143

ответ

9
[datePicker setMinimumDate:[NSDate date]]; 
[datePicker setMaximumDate:[NSDate dateWithTimeIntervalSinceNow:60*60*24*7]]; 

Он хочет всего семь дней, включая текущую дату.

+0

Спасибо @Saraswati. И так же, как это, возможно минимальное время и максимальное время, например, утром 10 утра до вечера 6 вечера. Является ли это возможным ? –

+0

Saraswathi попытается дать подробный ответ. – user3182143

3

Небольшая предосторожность против чрезмерно упрощенного добавления времени: просто добавление секунд может столкнуться с краевыми случаями против перехода на летнее время (например). Всегда полезно использовать NSCalendar для управления расчетами времени.

NSDate *today = [NSDate date]; 
NSCalendar *calendar = [NSCalendar currentCalendar]; 
calendar.timeZone = [NSTimeZone localTimeZone]; 
NSDate *endDate = [calendar dateByAddingUnit:NSCalendarUnitDay value:7 toDate:today options:0]; 

Полученный EndDate в приведенном выше коде будет один час отличается от простого добавления секунд, в случае перехода на летнее время, происходящего в течение 7-дневного периода. Этот час может переломиться через день, что приведет к сбою (редкому) краю корпуса.

0

Установка Min и Max дата в Datepicker:

[datePicker setMinimumDate:[NSDate date]; 
[datePicker setMaximumDate:[[NSDate date] dateByAddingTimeInterval:60*60*24*7]]; 
+0

Удалите ответ. Уже принятый ответ есть. Если вы опубликуете ответ, он должен быть уникальным. – user3182143