【问题标题】:How to convert Array of Months Name to Months Number in swift [duplicate]如何在swift中将月份名称数组转换为月份数[重复]
【发布时间】:2018-07-10 19:15:29
【问题描述】:

在我的项目中,我从选择器视图中选择月份名称放置在文本字段中。但我必须将月份数发送到服务器。

这是我的月份数组

var monthsArray = ["JANUARY","FEBRUARY","MARCH","APRIL","MAY","JUNE","JULY","AUGUST","SEPTEMBER","OCTOBER","NOVEMBER","DECEMBER"]

我遇到了一个问题。例如,如果我选择四月,我必须将 4 发送到服务器,如何执行此任务请有人帮助/建议我。

【问题讨论】:

标签: ios iphone swift


【解决方案1】:

如果你有文本值,只需在数组中找到该值的索引,然后加 1(因为数组是基于零索引的)

这样的事情应该可以工作:

var monthsArray = ["JANUARY","FEBRUARY","MARCH","APRIL","MAY","JUNE","JULY","AUGUST","SEPTEMBER","OCTOBER","NOVEMBER","DECEMBER"]
if let index = monthsArray.index(of: "APRIL") { // index will be 3 (zero based)
    let monthNumber = index + 1 // +1 as explained earlier
    print(monthNumber) // output: 4
}

【讨论】:

    【解决方案2】:

    这样的功能可能会有所帮助

    func getMonthIndex(_ month: String) -> Int {
        let months = ["JANUARY","FEBRUARY","MARCH","APRIL","MAY","JUNE","JULY","AUGUST","SEPTEMBER","OCTOBER","NOVEMBER","DECEMBER"]
        var monthIndex = -1
        if let idx = months.index(of: month.uppercased()) {
            monthIndex = idx + 1
        }
        return monthIndex
    }
    

    可以如下使用:

    var idx = getMonthIndex("January")  //1
    idx = getMonthIndex("JANUARY") //1
    idx = getMonthIndex("DECEMBER") //12
    idx = getMonthIndex("DECEMBERRRR") //-1
    

    在上面的片段中,“month.uppercased()”非常重要,这将有助于在所有情况下识别月份,例如“January”、“JANUARY”或“january”

    【讨论】:

    • 我觉得这个答案一定要选。因为在这个答案中接受所有类型的字符串并随时重用该函数。
    • 是的,我会接受这个,因为它对我有用
    猜你喜欢
    • 1970-01-01
    • 2011-06-04
    • 1970-01-01
    • 2012-11-26
    • 2013-03-08
    • 1970-01-01
    • 2010-09-16
    • 1970-01-01
    • 2011-06-04
    相关资源
    最近更新 更多