所以我有一个程序,需要向用户询问日期和时间。但是该日期必须是将来的日期或很远的过去。而且我尝试了UIDatePicker
,但是发现日期选择器并不是引发此类问题的最佳方法,因为它需要大量滚动,并且它不会加载超过特定日期因为某些原因。我在想一个UIPickerView
,要求输入年,月,日和时间。但是我不知道该怎么做,因为可以说该月是9月,只有30天,所以我该如何阻止用户选择31。所以如果有人可以帮助我,那就太好了。如果您有任何疑问或需要代码,请询问。哦,顺便说一句,我想要一个可以与其他日期进行比较的日期格式。
答案 0 :(得分:1)
鉴于stopwords
和year
,您可以像这样计算可能要提供给选择器的month
值的数组:
day
我想要一个可以与其他日期进行比较的日期格式。
一旦您拥有let calendar = Calendar.current
let components = DateComponents(year: year, month: month, day: 1)
guard let date = calendar.date(from: components),
let range = calendar.range(of: .day, in: .month, for: date) else { return }
let days = Array(range)
,year
和month
,day
(转换为24小时值,从0到23),就可以构建{{ 1}}对象如下:
hour
该Date
现在可以与任何其他let calendar = Calendar.current
let components = DateComponents(year: year, month: month, day: day, hour: hour, minute: minute)
guard let date = calendar.date(from: components) else { return }
对象进行比较。