2013-06-12 72 views
1

請看看到的代碼下面幾行:如何獲得起始日期和IOS一週的結束日期

NSCalendar *calendar = [NSCalendar currentCalendar]; 
NSInteger weekNumber = [[calendar components: NSWeekCalendarUnit fromDate:date] week]; 

現在我們怎麼能得到給定的週數的第一天和最後一天(假設那周從星期一開始到星期日)。

此外,如果有可能獲得所有日期的數組屬於同一週數。

回答

1

要獲得星期的第一天,可以使用以下代碼。

NSDate *now = [NSDate date]; 

    NSCalendar *calendar = [NSCalendar currentCalendar]; 
    NSInteger weekNumber = [[calendar components: NSWeekCalendarUnit fromDate:now] week]; 

    NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; 

    NSDateComponents *comp = [gregorian components:NSYearCalendarUnit fromDate:now]; 
    [comp setWeek:weekNumber]; //Week number. 
    [comp setWeekday:1]; //First day of the week. Change it to 7 to get the last date of the week 

    NSDate *resultDate = [gregorian dateFromComponents:comp]; 

    NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
    [formatter setDateFormat:@"MMM d, yyyy"]; 

    NSString *myDateString = [formatter stringFromDate:resultDate]; 
    NSLog(@"%@",myDateString); 

在上面的代碼註釋改變setWeekday方法的參數比7拿到一週的最後一天。

一旦你有第一天和一週的最後一天,你可以得到所有的日期,如下面的鏈接所述。 Array for dates between two dates

注意:從週一開始,該地區設置英國。

更改iPhone日曆以顯示星期一作爲一週的第一天。 1.點擊「設置」 2.點擊「常規」 3.點擊「國際」 4.點擊「區域格式」 5.選擇「聯合王國」

相關問題