2011-07-15 71 views
0

我在int中有一個星期的數字,我想得到那一週的第一個日期(NSDate值)。給定周的第一次約會(NSDate)

爲例: 首先2011年第21周的日(星期日)爲2011-05-22

我與NSCalendar努力,NSDateComponents實現這一目標。如果有人知道如何做到這一點,非常感謝您的幫助。

+0

顯示你做了什麼,所以我們可以看到如果可能的*較少*代碼。但使用NSCalendar和NSDateComponents是該任務的正確方法 – Vladimir

+0

弗拉基米爾,其實我試圖得到這個結果,所以我沒有一個完整的代碼。無論如何,我正在嘗試,如果發現我會用代碼編輯我的問題。 – Viraj

回答

4

試着這麼做:

NSDate *now = [NSDate date]; 
NSCalendar *gregorian = [[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar] autorelease]; 
NSDateComponents *comp = [gregorian components:NSYearCalendarUnit fromDate:now]; 
[comp setWeekday:1]; 
[comp setWeek: 21]; 
NSDate *resultDate = [gregorian dateFromComponents:comp]; 
+0

感謝您的幫助 - 結果是2011-05-21 18:30:00 +0000 - 21日是星期六,應該是22日不是嗎? - 我在模擬器上運行。 – Viraj

+0

@Viraj,這是因爲NSDate在格林威治標準時區存儲日期,當你打印它時,NSLog將當地時區考慮在內 – Vladimir

+0

你是絕對正確的。謝謝您的幫助。 – Viraj

相關問題