【发布时间】:2018-02-07 08:29:06
【问题描述】:
我想用年份对满月的数组进行排序,例如:
["Nov 2019","Apr 2020","MAR 2018","Jan 2018","May 2018"]
(未排序)
到:
["Jan 2018","Mar 2018","May 2018","Nov 2019","Apr 2020"]
(排序)像这样......
func sortDate( arr : inout [String]) {
let months : [String] = ["jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec"]
for i in 0..<arr.count{
for j in i..<arr.count{
let string1 = arr[i]
let string2 = arr[j]
let month1 = String(string1[string1.startIndex...string1.index(string1.startIndex, offsetBy: 2)])
let month2 = String(string2[string2.startIndex...string2.index(string2.startIndex, offsetBy: 2)])
if months.index(of: month1.lowercased())! > months.index(of: month2.lowercased())! {
let temp = arr[i]
arr[i] = arr[j]
arr[j] = temp
}
}
}
for i in 0..<arr.count{
for j in i..<arr.count{
let string1 = arr[i]
let string2 = arr[j]
if (string1[string1.index(before: string1.endIndex)..<string1.endIndex] as NSString).intValue < (string2[string2.index(before: string2.endIndex)..<string2.endIndex] as NSString).intValue {
let temp = arr[i]
arr[i] = arr[j]
arr[j] = temp
}
}
}
}
这是我尝试过的,但它不能正常工作。
这是输入:
["Jan 2020", "Feb 2018", "Mar 2018", "Apr 2018", "May 2018", "Jun 2018", "Jul 2018", "Aug 2018", "Sep 2018", "Oct 2018", "Nov 2018", "Jun 2019", "Feb 2019", "Jul 2019", "Apr 2019", "Aug 2019", "Sep 2019", "May 2019", "Oct 2019", "Jan 2019", "Mar 2019", "Nov 2019"]
输出是:
["Jan 2019", "Feb 2019", "Mar 2019", "Apr 2019", "May 2019", "Jun 2019", "Jul 2019", "Aug 2019", "Sep 2019", "Oct 2019", "Nov 2019", "Jul 2018", "Mar 2018", "May 2018", "Aug 2018", "Feb 2018", "Sep 2018", "Oct 2018", "Apr 2018", "Nov 2018", "Jun 2018", "Jan 2020"]
【问题讨论】:
-
您可以将日期字符串转换为日期,然后您可以轻松地对日期数组进行排序。
-
@chauhan 我会试试的