gpt4 book ai didi

arrays - 索引超出范围将日期转换为字符串组件

转载 作者:搜寻专家 更新时间:2023-11-01 07:11:10 24 4
gpt4 key购买 nike

我知道这是一个微不足道的错误,但我无法弄清楚,我被卡住了。
我想为 UISegmentedControl(有 6 个段)分配第一个段中的当前日期和下一个段中接下来的 5 天日期,如下图所示。为此,我需要从日期构造一个字符串数组,但我在这一行 let dayString = dateFormatter.shortWeekdaySymbols[dayComponent-1]

得到索引超出范围
var stringDates = [String]()
override func viewDidLoad() {
super.viewDidLoad()


//for each segment, construct a string date with the currentDate() being first
for i in 1...6 {

let dateFormatter = DateFormatter()

let today = Date()
let calendar = Calendar.current

if i == 1 {
let dayComponent = Calendar.current.component(.day,from: today)
let dayString = dateFormatter.shortWeekdaySymbols[dayComponent-1]
let month = Calendar.current.component(.month, from: today)
let monthSymbol = dateFormatter.shortMonthSymbols[month-1]

let dayMonthString = dayString + monthSymbol
stringDates.append(dayMonthString)
} else {
var components = DateComponents()
components.weekday = i
let nextDay = calendar.date(byAdding: components, to: today)
let dayComponent = Calendar.current.component(.day,from: nextDay!)
let dayString = dateFormatter.shortWeekdaySymbols[dayComponent-1]

let month = Calendar.current.component(.month, from: nextDay!)
let monthSymbol = dateFormatter.shortMonthSymbols[month-1]
let dayMonthString = dayString + monthSymbol
stringDates.append(dayMonthString)
}
}
}

enter image description here

最佳答案

let dayComponent = Calendar.current.component(.day,from: today) 中使用 .weekday 而不是 .day,如图所示下面:

let today = Date()
let dateFormatter = DateFormatter()
let dayComponent = Calendar.current.component(.weekday,from: today)
let dayString = dateFormatter.shortWeekdaySymbols[dayComponent - 1] //Fri

关于arrays - 索引超出范围将日期转换为字符串组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44842791/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com