2016-04-28 49 views
0

我正在嘗試此代碼,但它不起作用。 謝謝大家。 我正在使用uidatepicker與select minimumDate。但在datepicker swift 2.0中需要額外的15天。如何將datepicker當前日期限制在swift 2.0中的下一個15天

override func viewDidLoad() { 
let datePickerView:UIDatePicker = UIDatePicker() 
     datePickerView.datePickerMode = UIDatePickerMode.Date 
     sender.inputView = datePickerView 
     datePickerView.minimumDate = datePickerView.date 

     //datePickerView.maximumDate = datePickerView.date 

datePickerView.addTarget(self, action: #selector(BookAppointmentView.datePickerValueChanged(_:)), forControlEvents: UIControlEvents.ValueChanged) 
     } 

func datePickerValueChanged(sender:UIDatePicker)->NSDate { 

     let baseDate:NSDate = NSDate() 

     let dateFormatter = NSDateFormatter() 
     dateFormatter.dateFormat = "yyyy-MM-dd" 


     DatePickerField.text = dateFormatter.stringFromDate(sender.date) 
     print("date of bookAppointment\(DatePickerField.text!)") 

     return newDate! 

    } 

回答

1

有多種方法可以完成此操作。 dateByAddingTimeInterval是其中之一,在其中您在幾秒鐘內加入時間:

datepickerView.minimumDate = NSDate() // current date 
datepickerView.maximumDate = NSDate().dateByAddingTimeInterval(1296000) // date + 15 days 

你也可以這樣做:

datepickerView.minimumDate = NSDate() // current date 
let maxDateComponent = NSDateComponents() 
maxDateComponent.day = //days you want to add 
datePickerView.maximumDate = NSCalendar.currentCalendar().dateByAddingComponents(maxDateComponent, toDate: NSDate(), options: NSCalendarOptions.init(rawValue: 0)) 

您在其中添加天的時間。

0

我希望這個擴展方法有助於

extension NSDate { 
    func dateByAddingDays(days:Int) -> NSDate? { 
     let c:NSDateComponents = NSDateComponents() 
     c.day = days; 
     return NSCalendar.currentCalendar().dateByAddingComponents(c, toDate: self, options: []) 
    } 
} 

這段代碼沒有進行測試。但我在某些情況下使用了dateByAddingComponents

+0

datePickerView.maximumDate = NSDate()。dateByAddingDays(15)! –

+0

感謝它爲我工作.... –

相關問題