Как получить рабочий день в Swift независимо от настроек локали? - PullRequest
0 голосов
/ 30 апреля 2020

В моем приложении iOS пользователь может выбрать, в какой день активировать определенное действие, и я сохраняю каждый выбор как необработанное значение OptionSet. Все это прекрасно работает.

Но мне нужен способ сопоставить текущий день выбранным параметрам. Как я могу получить какие-то константы для рабочих дней, которые не меняются в зависимости от того, начинается ли неделя в воскресенье или понедельник в зависимости от выбранной локали?

Это:

let weekDay = Calendar.current.component(.weekday, from: Date())

Похоже на решение, но константа Int будет меняться в зависимости от локали? Согласно очень коротким документам от Apple, это должно быть 1 для воскресенья по григорианскому календарю.

Есть ли способ, как я могу получить день недели из Date, который будет всегда одинаковым?

Я хотел бы сопоставить эти константы с моими флагами OptionSet и на основании этого решить, действие должно быть активным в данный день.

Спасибо.

1 Ответ

2 голосов
/ 30 апреля 2020

Вы смешиваете weekday и firstWeekday.

Компонент weekday не зависит от локали, в григорианском календаре 1 всегда воскресенье, 2 понедельник и т. Д. c.

...