Почему расчеты ординальности даты изменились в iOS 12? - PullRequest
2 голосов
/ 21 марта 2019

Попробуйте следующее на игровых площадках.До iOS 12 он работал для всех входов (начиная с 1):

вход был бы равен выходу

let input = 1

let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"

var dateComponents = DateComponents()
dateComponents.day = input
dateComponents.hour = 0
dateComponents.minute = 0
dateComponents.second = 0

let date = Calendar.current.date(from: dateComponents)
let dateString = dateFormatter.string(from: date!)

let date2 = dateFormatter.date(from: dateString)
let output = Calendar.current.ordinality(of: .day, in: .era, for: date2!)

assert(output==input)

Но теперь в iOS 12 выход и ввод будут равны только начиная сввод 577738 ... это дата: 17 октября 1582 года, то есть через два дня после вступления в силу григорианского календаря (источник: https://en.wikipedia.org/wiki/Gregorian_calendar)

Итак, что здесь происходит? И почему это произошло?изменить в iOS 12?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...