繁体   English   中英

Objective-c从星期一开始,而不是星期日

[英]Objective-c get day of week in number starting with Monday, NOT Sunday

我正在为欧洲市场制作应用程序的自定义日历视图。 在一个函数中,我应该得到星期几的数字...我这样做,但它返回从星期日开始的星期几的数字。 我应该怎么硬编码从星期一开始返回这个号码? 谢谢这是我到目前为止:

-(int)getWeekDay:(NSDate*)date_
{
    NSLocale *frLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"fr_FR"];

    NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
    [gregorian setLocale:frLocale];
    NSDateComponents *comps = [gregorian components:NSWeekdayCalendarUnit fromDate:date_];
    int weekday = [comps weekday];

    NSLog(@"Week day is %i", weekday);
    return weekday;

}

您应该使用[NSCalendar setFirstWeekday:]来执行此操作。

最好的方法是使用[NSCalendar setFirstWeekday:] ,正如约书亚在答案中所说的那样。

否则,您可以执行整数运算。 Vova的方法很简单:

if (weekday>1)
    weekday--; 
else 
    weekday=7;

下面的这个也有效,虽然它有点令人困惑:

int europeanWeekday = ((weekday + 5) % 7) + 1;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM