gpt4 book ai didi

swift - 在日期选择器中获取不可用日期(Swift)

转载 作者:行者123 更新时间:2023-11-28 14:27:10 25 4
gpt4 key购买 nike

我有一个 UIDatePicker,它在从今天到下周的几天内可用(从 Date() 到 Date().day + 7)。

假设今天是该月的第30天,那么可供选择的日期是本月的第30天和下个月的第1天到第6天。

在这种情况下,当用户将日期从 30 更改为 1 时,我需要将 datePicker 月份更改为下个月。

但问题是:“当我将日期更改为无效日期时,.change 方法会给我最不有效的日期。”

示例:


假设:

  1. 今天 = 7 月 28 日。

  2. 可选日期 = 7 月 28 日至 8 月 3 日。


我需要什么:

  1. 用户不能选择 7 月 28 日之前和 8 月 3 日之后的日子。

  2. 当用户想要将日期更改为 8 月 1 日、2 日或 3 日时,datePicker 本身将月份更改为 8 月,并使 1、2 和 3 可用于由用户选择。


主要问题

  1. 当用户将日期更改为 1、2 或 3 时,我无法获得 1、2 或 3!它返回给我“28”!

最佳答案

只需将 UIDatePickerma​​ximumDate 属性设置为所需的日期。

func setupDatePicker(){

var currDateComponents = getDateComponents(fromDate: Date())
var maxDateComponents = currDateComponents

if let date = currDateComponents?.day{
maxDateComponents?.day = date + 7
}

self.datePicker?.maximumDate = getDate(fromDateComponents: maxDateComponents)

}

func getDateComponents(fromDate date: Date?)-> DateComponents?{
let calendar = Calendar(identifier: .gregorian)
var dateComponents: DateComponents? = nil
if(date != nil){
dateComponents = calendar.dateComponents([.day, .month, .year], from: date!)
}

return dateComponents
}

func getDate(fromDateComponents dateComponents:DateComponents?)-> Date?{
let calendar = Calendar(identifier: .gregorian)

if let componentsBasedDate = calendar.date(from: dateComponents!) {
return componentsBasedDate
}

return nil
}

关于swift - 在日期选择器中获取不可用日期(Swift),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51473131/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com