How to get weekdays array from system in Swift?

osx-yosemite, swift, xcode6

Solution

Try these properties:

let fmt = NSDateFormatter()
fmt.weekdaySymbols // -> ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
fmt.shortWeekdaySymbols // -> ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]
fmt.veryShortWeekdaySymbols // -> ["S", "M", "T", "W", "T", "F", "S"]
fmt.standaloneWeekdaySymbols // -> ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
fmt.shortStandaloneWeekdaySymbols // -> ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]
fmt.veryShortStandaloneWeekdaySymbols // -> ["S", "M", "T", "W", "T", "F", "S"]

It seems they always return `Sun ... Sat` array regardless `.firstWeekday` property of the `.calendar`. So, you have to rotate it manually.

let firstWeekday = 2 // -> Monday

var symbols = fmt.shortWeekdaySymbols
symbols = Array(symbols[firstWeekday-1..<symbols.count]) + symbols[0..<firstWeekday-1]
// -> ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"]

Problem

How can I take an array with days of week from the system (from `NSDate`, I think)? Until now, I can only take the current day, but I'd like to be able to take all weekdays in an array. If the first day of week is set to Monday, my array would look like: ``` [ Mon, Tue, Wed... ] ``` If the first day of week is Sunday, my array would look like: ``` [Sun, Mon, Tue... ] ``` Code: ``` let dateNow = NSDate() let calendar = NSCalendar.currentCalendar() let components = calendar.components(.CalendarUnitHour | .CalendarUnitMinute | .CalendarUnitSecond | .CalendarUnitYear , fromDate: dateNow) /*This is the way how i take system time */ let format = NSDateFormatter() format.dateFormat = "EEE" stringDay = format.stringFromDate(dateNow) ```

Original source