Swift-工作日(按当前位置,由currentCalendar())

今天是星期三,我有此代码

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(星期一)等。

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


更新

let calendar = Calendar.current

var dayOfWeek = calendar.component(.weekday, from: Date()) + 1 - calendar.firstWeekday

if dayOfWeek <= 0 {

dayOfWeek += 7

}

以上是 Swift-工作日(按当前位置,由currentCalendar()) 的全部内容, 来源链接: utcz.com/qa/420534.html

回到顶部