Моя цель - получить дату начала и окончания недели. Итак, я нашел:
https://stackoverflow.com/a/46402722/4757272, который был довольно аккуратным решением. У меня, однако, есть некоторые проблемы. Попробовав это, переменная с именем sunday
на самом деле является субботой, когда я смотрю в календарь, это довольно тревожно, но здесь возникает действительно тревожная часть:
extension Date {
var startOfWeek: Date? {
let gregorian = Calendar(identifier: .gregorian)
guard let sunday = gregorian.date(from: gregorian.dateComponents([.yearForWeekOfYear, .weekOfYear], from: self)) else { return nil }
return gregorian.date(byAdding: .day, value: 1, to: sunday)
}
var endOfWeek: Date? {
let gregorian = Calendar(identifier: .gregorian)
guard let sunday = gregorian.date(from: gregorian.dateComponents([.yearForWeekOfYear, .weekOfYear], from: self)) else { return nil }
return gregorian.date(byAdding: .day, value: 7, to: sunday)
}
}
dump(Date().startOfWeek)
dump(Date().endOfWeek)
Как вы видите, я распечатываю результат, и он ровный, как игровая площадка, он показывает мне результат и на правой вкладке. Тем не менее, это разные даты ... на какую мне положиться?