工作日的NSDateComponents没有显示正确的工作日? [英] NSDateComponents weekday doesn't show correct weekday?

查看:123
本文介绍了工作日的NSDateComponents没有显示正确的工作日?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我得到了一个N​​SDate例如1/6 -12(星期五)并试图找出它的工作日。我的周从星期一开始,所以星期五应该是工作日5。

I got a NSDate for example 1/6 -12 (Friday) and trying to find out what weekday it is. My week starts at Monday so Friday should be weekday 5.

    NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
    [calendar setFirstWeekday:2];
    NSDateComponents *components = [calendar components:NSWeekdayCalendarUnit fromDate:firstOfJulyDate];
    NSLog(@"weekday %i",components.weekday);

输出:工作日6

不会无论我设置setFirstWeekday,输出将始终为6.
我做错了什么?

Doesn't matter what i set setFirstWeekday to, output will always be 6. What am i doing wrong?

推荐答案

尝试做这样的事情:

NSCalendar *gregorian = [[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar] autorelease];
[gregorian setFirstWeekday:2]; // Sunday == 1, Saturday == 7
NSUInteger adjustedWeekdayOrdinal = [gregorian ordinalityOfUnit:NSWeekdayCalendarUnit inUnit:NSWeekCalendarUnit forDate:[NSDate date]];
NSLog(@"Adjusted weekday ordinal: %d", adjustedWeekdayOrdinal);

这篇关于工作日的NSDateComponents没有显示正确的工作日?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆