//日期所在周開始日期(星期天)
funcstartOfWeek(ofdate:Date) ->Date? {
? ? letcalendar =NSCalendar.current
? ? letcomponents = calendar.dateComponents([.yearForWeekOfYear, .weekOfYear],from: date)
? ? letstartOfWeek = calendar.date(from: components)
? ? returnstartOfWeek
}
//日期所在周結(jié)束日期(星期六)
funcendOfWeek(ofdate:Date) ->Date? {
? ? guardletstartOfWeek = startOfWeek(of: date)else{returnnil}
? ? letcalendar =NSCalendar.current
? ? varcomponents =DateComponents()
? ? components.day=7
? ? components.second= -1
? ? letendOfWeek = calendar.date(byAdding: components,to: startOfWeek)
? ? returnendOfWeek
}
//日期所在月開始日期
funcstartOfMonth(ofdate:Date) ->Date? {
? ? letcalendar =NSCalendar.current
? ? letcomponents = calendar.dateComponents([.year, .month],from: date)
? ? letstartOfMonth = calendar.date(from: components)
? ? returnstartOfMonth
}
//日期所在月結(jié)束日期
funcendOfMonth(ofdate:Date) ->Date? {
? ? guardletstartOfMonth = startOfMonth(of: date)else{returnnil}
? ? letcalendar =NSCalendar.current
? ? varcomponents =DateComponents()
? ? components.month=1
? ? components.second= -1
? ? letendOfMonth = calendar.date(byAdding: components,to: startOfMonth)
? ? returnendOfMonth
}
//日期所在年開始日期
funcstartOfYear(ofdate:Date) ->Date? {
? ? letcalendar =NSCalendar.current
? ? letcomponents = calendar.dateComponents([.year],from: date)
? ? letstartOfYear = calendar.date(from: components)!
? ? returnstartOfYear
}
//日期所在年結(jié)束日期
funcendOfYear(ofdate:Date) ->Date? {
? ? guardletstartOfYear = startOfYear(of: date)else{returnnil}
? ? letcalendar =NSCalendar.current
? ? varcomponents =DateComponents()
? ? components.year=1
? ? components.second= -1
? ? letendOfYear = calendar.date(byAdding: components,to: startOfYear)
? ? returnendOfYear
}
functest() {
? ? guardletstart = startOfWeek(of:Date())?.timeIntervalSince1970else{return}
? ? print("start:\(start)")
? ? guardletend = endOfWeek(of:Date())?.timeIntervalSince1970else{return}
? ? print("end:\(end)")
? ? guardletstartOfMonth = startOfMonth(of:Date())?.timeIntervalSince1970else{return}
? ? print("startOfMonth:\(startOfMonth)")
? ? guardletendOfMonth = endOfMonth(of:Date())?.timeIntervalSince1970else{return}
? ? print("endOfMonth:\(endOfMonth)")
? ? guardletstartOfYear = startOfYear(of:Date())?.timeIntervalSince1970else{return}
? ? print("startOfYear:\(startOfYear)")
? ? guardletendOfYear = endOfYear(of:Date())?.timeIntervalSince1970else{return}
? ? print("endOfYear:\(endOfYear)")
}