四中走出來顯示使用nscalender..using下面的代碼中的任何工作日名稱.. 剛剛從Xcode的菜單欄打開控制檯看到results.Copy在viewDidLoad方法下面的代碼粘貼方式獲得一週的第一天
NSDate *today = [NSDate date];
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"MM/dd/yyyy :EEEE"];
NSString *dateString = [dateFormat stringFromDate:today];
NSLog(@"date: %@", dateString);
[dateFormat release];
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *components = [gregorian components:NSWeekdayCalendarUnit | NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit fromDate:today];
[components setDay:([components day]-([components weekday]-1))];
NSDate *beginningOfWeek = [gregorian dateFromComponents:components];
NSDateFormatter *dateFormat_first = [[NSDateFormatter alloc] init];
[dateFormat_first setDateFormat:@"MM/dd/yyyy :EEEE"];
NSString *dateString_first = [dateFormat_first stringFromDate:beginningOfWeek];
NSLog(@"First_date: %@", dateString_first);
輸出將是:
date: 02/11/2010 :Thursday
First_date: 02/07/2010 :Sunday
,因爲我曾在2010年2月11日運行此程序U將得到所需的輸出去等待當前日期。
同樣,如果你想得到我第一週的第一個工作日。Ë週一的日期,那麼只需修改一下代碼:
CHANGE:[components setDay:([components day]-([components weekday]-1))];
TO [components setDay:([components day]-([components weekday]-2))];
獲得該周星期一日期..
同樣ü可以嘗試找到日期七個工作日中的任何一個通過更改整數-1,-2等...
希望你的問題得到解答..
謝謝, Bonson Dias
那麼你有沒有發現任何解決辦法了嗎?我也同樣感到震驚! – 2010-10-04 11:59:51
默認情況下,ISO 8601日曆的第一個工作日設置爲星期一。 – 2014-07-25 13:53:34