我正在为欧洲市场制作应用程序的自定义日历视图。在一个函数中,我应该得到星期几的数字...我这样做,但它返回从星期日开始的星期几的数字。我应该怎么硬编码从星期一开始返回这个号码? 谢谢 以下是我到目前为止的情况:
-(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;
}
答案 0 :(得分:9)
您应该使用[NSCalendar setFirstWeekday:]
来执行此操作。
答案 1 :(得分:4)
最好的方法是使用[NSCalendar setFirstWeekday:]
,正如约书亚在答案中所说的那样。
否则,您可以执行整数运算。 Vova的方法很简单:
if (weekday>1)
weekday--;
else
weekday=7;
下面的这个也有效,虽然它有点令人困惑:
int europeanWeekday = ((weekday + 5) % 7) + 1;