如果我有一個UIDatePicker,並且我希望將最小和最大日期範圍設置在三十年前和未來三十年之間,我將如何設置它?UIDatePicker,根據今天的日期設置最大和最小日期
回答
未經測試,但您可能需要這樣的東西。
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDate *currentDate = [NSDate date];
NSDateComponents *comps = [[NSDateComponents alloc] init];
[comps setYear:30];
NSDate *maxDate = [calendar dateByAddingComponents:comps toDate:currentDate options:0];
[comps setYear:-30];
NSDate *minDate = [calendar dateByAddingComponents:comps toDate:currentDate options:0];
[datePicker setMaximumDate:maxDate];
[datePicker setMinimumDate:minDate];
m_datePicker.maximumDate = [NSDate date];
您可以使用此行代碼來設置最大日(今天)。
以及如何隱藏日期> maximumDate? – alex 2015-09-08 11:21:00
實際上,它會將最大日期設置爲執行該代碼行的確切分鐘數 – 2015-10-29 16:35:35
它不允許選擇比今天晚的日期,但用戶已經看到了更晚的日期。 – 2016-06-01 07:50:14
請試試這個代碼iOS8上+
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
NSDate *currentDate = [NSDate date];
NSDateComponents *comps = [[NSDateComponents alloc] init];
[comps setYear:30];
NSDate *maxDate = [calendar dateByAddingComponents:comps toDate:currentDate options:0];
[comps setYear:-30];
NSDate *minDate = [calendar dateByAddingComponents:comps toDate:currentDate options:0];
[datePicker setMaximumDate:maxDate];
[datePicker setMinimumDate:minDate];
適應@ warrenm的回答讓斯威夫特:
let currentDate = NSDate()
let dateComponents = NSDateComponents()
dateComponents.year = -13
let minDate = calendar.dateByAddingComponents(dateComponents, toDate: currentDate, options: NSCalendarOptions(rawValue: 0))
dateComponents.year = 30
let maxDate = calendar.dateByAddingComponents(dateComponents, toDate: currentDate, options: NSCalendarOptions(rawValue: 0))
dobPicker.maximumDate = maxDate
dobPicker.minimumDate = minDate
今天看這個問題,並與斯威夫特3擴展的UIDatePicker的解決方案上來。
extension UIDatePicker
{
/// set the date picker values and set min/max
/// - parameter date: Date to set the picker to
/// - parameter unit: (years, days, months, hours, minutes...)
/// - parameter deltaMinimum: minimum date delta in units
/// - parameter deltaMaximum: maximum date delta in units
/// - parameter animated: Whether or not to use animation for setting picker
func setDate(_ date:Date, unit:NSCalendar.Unit, deltaMinimum:Int, deltaMaximum:Int, animated:Bool)
{
setDate(date, animated: animated)
setMinMax(unit: unit, deltaMinimum: deltaMinimum, deltaMaximum: deltaMaximum)
}
/// set the min/max for the date picker (uses the pickers current date)
/// - parameter unit: (years, days, months, hours, minutes...)
/// - parameter deltaMinimum: minimum date delta in units
/// - parameter deltaMaximum: maximum date delta in units
func setMinMax(unit:NSCalendar.Unit, deltaMinimum:Int, deltaMaximum:Int)
{
if let gregorian = NSCalendar(calendarIdentifier:.gregorian)
{
if let minDate = gregorian.date(byAdding: unit, value: deltaMinimum, to: self.date)
{
minimumDate = minDate
}
if let maxDate = gregorian.date(byAdding: unit, value: deltaMaximum, to: self.date)
{
maximumDate = maxDate
}
}
}
}
的setDate
方法將設置UIDatePicker
實例的三個值(日期,最小值,最大值)。
setMinMax
只設置最小值和最大值。最小值和最大值使用選擇器的當前日期進行計算。
單元可以是以下值:
- .year
- .month
- ·天
- ·小時
- .minute
- 。第二
用pl設定日期我們再減去三十多年來,代碼如下:
var datePicker = UIDatePicker()
var date = Date()
datePicker.setDate(date, unit:.year, deltaMinimum:-30, deltaMaximum:30, animated:true)
我@toddg雨燕4版本是:
let currentDate = Date()
var dateComponents = DateComponents()
let calendar = Calendar.init(identifier: .gregorian)
dateComponents.year = -100
let minDate = calendar.date(byAdding: dateComponents, to: currentDate)
dateComponents.year = -13
let maxDate = calendar.date(byAdding: dateComponents, to: currentDate)
爲我的偉大工程!
- 1. UIDatePicker,根據日期名稱和今天的日期設置最大和最小日期
- 2. 設置日期輸入字段的最大日期爲今天
- 3. JQuery UIDatePicker - 設置最大日期
- 4. Flex:設置日期的最小和最大日期HSlider
- 5. 設置最大日期爲當前日期的UIDatePicker
- 6. 如今在今天23:59在uidatepickerview中設置最大日期?
- 7. 無法設置最大和最小日期日期選擇器
- 8. 將RadDatePicker客戶端的最小/最大日期從今天的日期設置爲30天?
- 9. angularjs日期選擇器來設置最大日期和最小日期動態
- 10. 設置最小/最大日期jquery Datepicker
- 11. 最大和最小日期
- 12. 最小和最大日期
- 13. 今天日期之後的SQL最小日期值現在()
- 14. UIDatepicker日期早於最低或最高日期之前一天
- 15. 設置日曆組件中的最小日期和最大日期flash cs6
- 16. UIDatePicker:最短日期
- 17. SQL:根據最小日期
- 18. 在java swing jdatepicker中設置最大日期值到今天
- 19. zabuto日曆最小和最大日期
- 20. 在日曆上設置最小和最大日期?
- 21. 設置最短日期到UIDatePicker
- 22. 如何在JavaFx8中設置Datepicker Calander中的最小日期和最大日期?
- 23. 設置最短日期時忽略UIDatePicker日期
- 24. 根據大小和日期旋轉日誌的最佳方法
- 25. jquery mobile Mobipick - 設置最短日期從今天起4天
- 26. datepicker日期範圍:最大日期的最短日期=開始日期+ 1天
- 27. 日期驗證:在文本框中設置最小和最大日期
- 28. 如何爲日期選擇器設置最小和最大日期?
- 29. 根據今天的日期獲取最後紀錄
- 30. 查找距今天最近的日期
如果您還有日期和月份列,它不會搞砸嗎?它將以目前的形式限制當前日期的月份和日期。就像今天是2015年6月3日一樣。年數一切正常。一天將停留在最大值3和月將停留在最大值6月 – NSNoob 2015-06-03 07:25:14
不。你是盲目投機嗎? – warrenm 2015-06-05 20:18:49
不,我在一個我正在研究的應用程序中嘗試過,並且遇到了我告訴過你的問題。最後,我不得不單獨在日期上進行支票。 – NSNoob 2015-06-09 08:04:06