如何设置带条件的SwiftUI日历默认日期?
设置默认日历日期。 如果默认日期早于2021年1月1日,则使用2021年1月1日,或使用DateComponents(年份:-1)、to:date()作为默认日期如何设置带条件的SwiftUI日历默认日期?,swift,Swift,设置默认日历日期。 如果默认日期早于2021年1月1日,则使用2021年1月1日,或使用DateComponents(年份:-1)、to:date()作为默认日期 public var filterSelections: [String: Any] = [] @Published var fromDate: Date = Calendar.current.date(byAdding: DateComponents(year: -1), to: Date()) ?? Date(){
public var filterSelections: [String: Any] = []
@Published var fromDate: Date =
Calendar.current.date(byAdding: DateComponents(year: -1), to: Date()) ?? Date(){
didSet {
filterSelections.append(anotherDict: [
"fromDate": self.fromDate.dateStringFromSystemDate,
"toDate":self.toDate.dateStringFromSystemDate])
}
}
}
func getDefaultFromDate() -> String{
let strFromDate = "2021-01-01"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy'-'MM'-'dd'T'HH':'mm':'ssZZZ"
let fromDate = dateFormatter.date(from: strFromDate)
var defaultFromDate = Calendar.current.date(byAdding: DateComponents(year: -1), to: Date()) ?? Date()
if (defaultFromDate < fromDate ?? Date()){
defaultFromDate = fromDate ?? Date()
}
print("---- \(defaultFromDate) ")
return defaultFromDate.dateStringFromSystemDate
}
public-var-filterSelections:[String:Any]=[]
@发布变量fromDate:Date=
Calendar.current.date(通过将:DateComponents(年份:-1)添加到:date())??日期({
迪塞特{
filterSelections.append(另一条命令:[
“fromDate”:self.fromDate.dateStringFromSystemDate,
“toDate”:self.toDate.dateStringFromSystemDate])
}
}
}
func getDefaultFromDate()->字符串{
让strFromDate=“2021-01-01”
让dateFormatter=dateFormatter()
dateFormatter.dateFormat=“yyyy'-'MM'-'dd'T'HH':'MM':'ssZZZ”
let fromDate=dateFormatter.date(from:strFromDate)
var defaultFromDate=Calendar.current.date(通过将:DateComponents(年份:-1)添加到:date())??date()
如果(defaultFromDate
使用DateComponents获取2021-1-1作为日期,使用Calendar获取一年前的日期,然后返回两个日期的最大值
func defaultDate() -> Date? {
if let firstDayOfYear = DateComponents(calendar: .current,year: 2021, month: 1, day: 1).date,
let oneYearAgo = Calendar.current.date(byAdding: .year, value: -1, to: Date()) {
return max(firstDayOfYear, oneYearAgo)
}
return nil
}
使用DateComponents获取2021-1-1作为日期,使用Calendar获取一年前的日期,然后返回两个日期的最大值
func defaultDate() -> Date? {
if let firstDayOfYear = DateComponents(calendar: .current,year: 2021, month: 1, day: 1).date,
let oneYearAgo = Calendar.current.date(byAdding: .year, value: -1, to: Date()) {
return max(firstDayOfYear, oneYearAgo)
}
return nil
}
@Published var fromDate:Date=getDefaultFromDate(){didSet{…}}当我试图将func放在那里时,出现了以下错误。无法在属性初始值设定项中使用实例成员“getDefaultFromDate”;属性初始值设定项在“self”可用之前运行这是一个完全不同的问题,但我建议您使用
init
来初始化属性。@已发布的变量fromDate:Date=getDefaultFromDate(){didSet{…}当我试着把func放在那里时,我犯了这个错误。无法在属性初始值设定项中使用实例成员“getDefaultFromDate”;属性初始值设定项在“self”可用之前运行这是一个完全不同的问题,但我建议您使用init
来初始化属性。