/// 获取两个日期之间的所有日期,精确到天
/// - Parameters:
/// - leftDateStr: 最小时间
/// - rightDateStr: 最大时间
func getDayArray(leftDateStr: String, rightDateStr: String) -> [String] {
let dateformatter = DateFormatter()
dateformatter.dateFormat = "yyyy-MM-dd"
let leftDate = dateformatter.date(from: leftDateStr)
let rightDate = dateformatter.date(from: rightDateStr)
if leftDate == rightDate{
let greorian = Calendar(identifier: .gregorian)
//Calendar.Component.weekday | Calendar.Component.year | Calendar.Component.month | Calendar.Component.day
let comp = greorian.dateComponents([.weekday,.year,.month,.day], from: leftDate!)
let beginningOfweek = greorian.date(from: comp)
let dateDay = DateFormatter()
dateDay.dateFormat = "yyyy-MM-dd"
let currentDateStr = dateDay.string(from: beginningOfweek!)
return [currentDateStr]
}
var dayArray = [String]()
var currentDate = leftDate
let gregorian = Calendar(identifier: .gregorian)
let comp = gregorian.dateComponents([.weekday,.year,.month,.day], from: leftDate!)
while currentDate! < rightDate! {
let beginningOfWeek = gregorian.date(from: comp)
currentDate = beginningOfWeek
let dateDay = DateFormatter()
dateDay.dateFormat = "yyyy-MM-dd"
let currentDateStr = dateDay.string(from: beginningOfWeek!)
dayArray.append(currentDateStr)
}
return dayArray
}
最近需求需要自己写一个datepicker,要求最大和最小时间之外的时间不显示。所以需要自己用pickerView实现一套。需求中的一点是精确到天的选择。故写了一个方法,获取一段日期之间的所有天。