gpt4 book ai didi

ios - 如何获得星期一 00 :00 of current week? Swift 3

转载 作者:搜寻专家 更新时间:2023-11-01 05:48:39 25 4
gpt4 key购买 nike

我正在尝试从我约会的星期一 00:00 返回。这是我的代码:

func getMonday(myDate: Date) -> Date {
let cal = Calendar.current
let comps = cal.dateComponents([.weekOfYear, .yearForWeekOfYear], from: myDate)
let beginningOfWeek = cal.date(from: comps)!
return beginningOfWeek
}

我的问题是它不会在星期一 00:00 返回,而是在星期六 22:00 返回。

例子:

    let monday1 = getMonday(myDate: date) //date is: 2016-10-04 17:00:00
print(monday1) //Prints: 2016-10-01 22:00:00 (Saturday)

我的问题是:

如何从 myDate 返回星期一 00:00?

非常感谢。

最佳答案

您的代码返回给定周的第一天,这可能是星期日或星期一(或其他某天),具体取决于您所在的地区。

如果你想让星期一被认为是第一个工作日那么设置

cal.firstWeekday = 2

如果你想要给定周的星期一,独立于什么一周的开始是,然后设置 comps.weekday = 2:

func getMonday(myDate: Date) -> Date {
let cal = Calendar.current
var comps = cal.dateComponents([.weekOfYear, .yearForWeekOfYear], from: myDate)
comps.weekday = 2 // Monday
let mondayInWeek = cal.date(from: comps)!
return mondayInWeek
}

请注意,打印 Date 始终使用 GMT 时区,您需要一个日期格式化程序 来根据您本地的时区打印结果。示例:

let df = DateFormatter()
df.dateFormat = "yyyy-MM-dd HH:mm"

let now = Date()
print(df.string(from: now)) // 2016-10-02 20:16

let monday1 = getMonday(myDate: now)
print(df.string(from: monday1)) // 2016-09-26 00:00

关于ios - 如何获得星期一 00 :00 of current week? Swift 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39819940/

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