Каков правильный календарный способ (в iOS или OS X) для получения стандартных рабочих дней недели (например, по будням) по сравнению с нерабочими днями недели? Это учитывает, что some parts of the world doesn't follow the Monday through Friday working day рутины. Например. ОАЭ и некоторые части Малайзии работают с воскресенья по четверг.Как получить выходные и выходные дни в какао?
Я ищу эмулировать встроенное приложение сигнализации iOS, в котором, если я выберу повторяющийся день с понедельника по пятницу, он скажет, что мой будильник повторяет «будни», тогда как для сигналов тревоги, которые срабатывают в субботу и воскресенье, «Выходные дни». Тем не менее, я хотел бы, чтобы мое приложение также правильно работало в других частях света, которое не следует за рабочей неделей западного мира.
Я работал с NSCalendar
isDateInWeekend
функцией с различными другими календарями и не смог найти подходящий метод для определения буднего дня и выходных. Вот отрывок из Swift детскую площадку, которую я получил до сих пор:
import UIKit
let arabicLocale = NSLocale(localeIdentifier: "en_AR")
let islamicTabularCalendar = NSCalendar(calendarIdentifier: NSCalendarIdentifierIslamicTabular)
islamicTabularCalendar?.locale = arabicLocale
let islamicTabularFormatter = NSDateFormatter()
islamicTabularFormatter.calendar = islamicTabularCalendar
islamicTabularFormatter.dateStyle = NSDateFormatterStyle.FullStyle
let gregorianCalendar = NSCalendar(calendarIdentifier: NSCalendarIdentifierGregorian)
gregorianCalendar?.locale = arabicLocale
let gregorianFormatter = NSDateFormatter()
gregorianFormatter.calendar = gregorianCalendar
gregorianFormatter.dateStyle = NSDateFormatterStyle.FullStyle
let monday = NSDateComponents()
monday.weekday = 2
monday.weekOfMonth = 0
let friday = NSDateComponents()
friday.weekday = 6
friday.weekOfMonth = 0
let mondayDate = islamicTabularCalendar?.dateFromComponents(monday)
gregorianFormatter.stringFromDate(mondayDate!) // "Monday, July 8, 622"
islamicTabularFormatter.stringFromDate(mondayDate!) // "Monday, Dhuʻl-Hijjah 20, 0 AH"
islamicTabularCalendar?.isDateInWeekend(mondayDate!) // false
let fridayDate = islamicTabularCalendar?.dateFromComponents(friday)
gregorianFormatter.stringFromDate(fridayDate!) // Friday, July 12, 622
islamicTabularFormatter.stringFromDate(fridayDate!) // Friday, Dhuʻl-Hijjah 24, 0 AH
islamicTabularCalendar?.isDateInWeekend(fridayDate!) // false
Что я ищу является то, что возвращает false
по пятницам в некоторых частях мира, что практика понедельника по пятницу рабочих дней, но возвращает true
ОАЭ и тому подобное.
возможно дубликат [Как я могу узнать, является ли NSDate это рабочий день?] (Http://stackoverflow.com/questions/17546017/как-может-я-найти выход-ли-ан-NSDate-это-бизнес-день) – matt