我有一个类似的阵列
"11 Aug 2015",
"24 Sep 2014",
"25 Aug 2014",
"07 Aug 2014",
"07 Aug 2014"
Run Code Online (Sandbox Code Playgroud)
我想在其中找到最大和最小日期.
modifieddateArray.valueForKeyPath("@max.self")
modifieddateArray.valueForKeyPath("@min.self")
Run Code Online (Sandbox Code Playgroud)
我使用了上面给出的功能
最高为2014年8月25日
分钟为2014年8月7日
但最长日期为2015年8月11日,最低日期为2014年9月7日
它考虑的第一个值大于25,最小值为07.我怎么能解决.
提前致谢
// Operator Overloading Methods
func >(lhs: NSDate, rhs: NSDate) -> Bool {
return lhs.compare(rhs) == NSComparisonResult.OrderedAscending
}
func <(lhs: NSDate, rhs: NSDate) -> Bool {
return lhs.compare(rhs) == NSComparisonResult.OrderedDescending
}
// String to date
func dateFromString(dateStr: String) -> NSDate {
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "dd LLL yyyy"
// Eric D's suggestion, forcing locale to en_EN
dateFormatter.locale = NSLocale(localeIdentifier: "en_EN")
return dateFormatter.dateFromString(dateStr)!
}
// Date to String
func stringFromDate(date: NSDate) -> String {
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "dd LLL yyyy"
// Eric D's suggestion, forcing locale to en_EN
dateFormatter.locale = NSLocale(localeIdentifier: "en_EN")
return dateFormatter.stringFromDate(date)
}
// Array of String Dates
var dates = ["11 Aug 2015",
"24 Sep 2014",
"25 Aug 2014",
"07 Aug 2014",
"07 Aug 2014"]
// Map the Strings to NSDate
var dateInstances = dates.map({dateFromString($0)})
// Find Max
let maxVal = stringFromDate(dateInstances.reduce(dateInstances[0]){$0 > $1 ? $1 : $0})
// Find Min
let minVal = stringFromDate(dateInstances.reduce(dateInstances[0]){$0 < $1 ? $1 : $0})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2468 次 |
| 最近记录: |