For the Gregorian calendar, the weekday
property of NSDateComponents
always 1 for Sunday, 2 for Monday, etc.
NSCalendar.currentCalendar().firstWeekday
gives (index) the first day of the week in the current region, which can be 1 in the USA and 2 in Bulgaria. therefore
var dayOfWeek = dateComps.weekday + 1 - calendar.firstWeekday if dayOfWeek <= 0 { dayOfWeek += 7 }
- day of the week according to your language. As single line:
let dayOfWeek = (dateComps.weekday + 7 - calendar.firstWeekday) % 7 + 1
Update for Swift 3:
let calendar = Calendar.current var dayOfWeek = calendar.component(.weekday, from: Date()) + 1 - calendar.firstWeekday if dayOfWeek <= 0 { dayOfWeek += 7 }
source share