2012-03-21 196 views
3

我正在爲歐洲市場的應用程序製作自定義日曆視圖。在一個函數中,我應該得到星期幾的日期......我這樣做,但是它會返回從星期天開始的星期幾的數字。我應該如何硬編碼從星期一開始返回這個數字? 感謝 這是我到目前爲止有:Objective-c從星期一開始計算星期幾,而不是星期天

-(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; 

} 

回答

4

要做到這一點是使用[NSCalendar setFirstWeekday:],約書亞在他回答說,最好的辦法。

否則,你可以做整數算術。 Vova的方法很簡單:

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

下面這一個工作過,雖然這是一個有點混亂:

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

那會讓星期天爲0 ...? – MechEthan 2012-03-21 17:24:35

+0

那麼,它將不依賴於系統本地設置? – 2012-03-21 17:26:44

+1

是的,如果(工作日> 1){weekday--; } else weekday = 7; – 2012-03-21 17:29:41

相關問題