Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何设置带条件的SwiftUI日历默认日期?_Swift - Fatal编程技术网

如何设置带条件的SwiftUI日历默认日期?

如何设置带条件的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(){

设置默认日历日期。 如果默认日期早于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(){
        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
来初始化属性。