今天是星期三,我有此代码
let calendar:NSCalendar = NSCalendar.currentCalendar() let dateComps:NSDateComponents = calendar.components(.CalendarUnitWeekday , fromDate: NSDate()) let dayOfWeek:Int = dateComps.weekday
dayOfWeek是4,但是今天是保加利亚一周中的第3天。今天在美国是星期四吗?以及如何确定一周在不同国家和地区开始的时间?在我的iPhone上,语言环境和日历都设置为保加利亚日历和语言环境,它知道该周也是在iMac上从星期一开始的,但是当我执行代码时,它会写成4 …
对于阳历,weekday属性NSDateComponents始终为1(星期日),2(星期一)等。
weekday
NSDateComponents
NSCalendar.currentCalendar().firstWeekday
给出当前语言环境中第一个工作日的(索引),在美国可能是1,在保加利亚是2。因此
var dayOfWeek = dateComps.weekday + 1 - calendar.firstWeekday if dayOfWeek <= 0 { dayOfWeek += 7 }
是您所在地区的星期几。作为单线:
let dayOfWeek = (dateComps.weekday + 7 - calendar.firstWeekday) % 7 + 1
Swift 3 更新 :
let calendar = Calendar.current var dayOfWeek = calendar.component(.weekday, from: Date()) + 1 - calendar.firstWeekday if dayOfWeek <= 0 { dayOfWeek += 7 }