1
Я пытаюсь установить даты начала недели в приложении. Однако в 2017 году, это приводит к не-ожидаемому поведению, так как в этом году неделю «1» 2 раза в нем,Получение первой недели года NSCalendar
начиная воскресенье 1-го января и вс декабря 31. Моей программа находит последнюю. Давая мне результат '01 -01-2018 ', где должен быть, '02 -01-2017'
Как я могу убедиться, что моя программа найдет первую дату?
это мой код:
getFirstDay(Int(weekNummer)!, year: yearWrap)
func getFirstDay(weekNumber:Int, year:Int)->String?{
let Calendar = NSCalendar(calendarIdentifier: NSCalendarIdentifierGregorian)!
let dayComponent = NSDateComponents()
dayComponent.weekOfYear = weekNumber
dayComponent.weekday = 2
dayComponent.year = year
var date = Calendar.dateFromComponents(dayComponent)
if ((weekNumber == 1 || weekNumber == 52 || weekNumber == 53) && Calendar.components(.Month, fromDate: date!).month != 1){
dayComponent.year = year - 1
date = Calendar.dateFromComponents(dayComponent)
}
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "dd-MM-yyyy"
return String(dateFormatter.stringFromDate(date!))
}