Используйте это для сегодняшней даты:
Calendar.current.ordinality(of: .weekOfYear, in: .year, for: Date())!
Точно так же вы можете использовать его для дня года:
Calendar.current.ordinality(of: .day, in: .year, for: self)!
Или текущий месяц:
Calendar.current.ordinality(of: .month, in: .year, for: self)!
Вы также можете определить их как расширения на Date
:
extension Date {
public var dayOfYear: Int {
return Calendar.current.ordinality(of: .day, in: .year, for: self)!
}
public var weekOfYear: Int {
return Calendar.current.ordinality(of: .weekOfYear, in: .year, for: self)!
}
public var monthOfYear: Int {
return Calendar.current.ordinality(of: .month, in: .year, for: self)!
}
}
let nowDate = Date() //"Sep 3, 2018 at 10:54 AM"
nowDate.dayOfYear //246
nowDate.weekOfYear //36
nowDate.monthOfYear //9