Я пытаюсь добавить день к другому (он отлично работает, пока я не увидел что-то).Добавление дня к дате с помощью NSCalendar
За неделю 6 в 2016 году (начиная с 30 января), если у меня был день к этой дате, он показывает мне 31 декабря 2015.
Можете ли вы объяснить мне, что я делаю неправильно ?
Вот код (вы можете поместить его в детскую площадку):
let weekToDisplay = 6
let yearToDisplay = 2016
let calendar = NSCalendar.currentCalendar()
let comp = NSDateComponents()
comp.weekday = calendar.firstWeekday
comp.weekOfYear = weekToDisplay
comp.year = yearToDisplay
let dateToIncrement = calendar.dateFromComponents(comp)! // "Jan 31, 2016, 12:00 AM
var incrementedDate = calendar.dateByAddingUnit(.Day, value: 1, toDate: dateToIncrement, options: NSCalendarOptions.WrapComponents)! // "Jan 1, 2016, 12:00 AM"
print(dateToIncrement) // "2016-01-30 23:00:00 +0000\n"
print(incrementedDate) // "2015-12-31 23:00:00 +0000\n"
Последняя вещь, когда вы печатаете дату, это не то же самое, как показано на детской площадке при выполнении этой конкретной строки кода , Зачем ? (См комментарии)
Вы не хотите обертывать дополнение. – rmaddy
Ответ rmaddy правильный. Это понятно и точно. (Проголосовали). Вы должны согласиться с этим, а не с Уильямом, поскольку его первоначальный ответ был неправильным способом сделать это, и его обновленный ответ был грязным и запутанным. –
@ DuncanC действительно мой обновленный ответ смущен? –