請幫我,我卡住了!如何通過使用initRecurrenceWithFrequency for iOS獲得作爲NSInteger(52或53)的weeksOfTheYear?我
我想做一個簡單的日曆應用程序,並絕望。我需要一個給定年份(52或53)的周值,我明白這個問題的答案是使用initRecurrenceWithFrequency。但我無法讓我的代碼工作!請幫忙。
/約翰
@AliSoftware
Thannks了很多!
但是這段代碼給了我1而不是53.你知道爲什麼嗎? 順便說一句我的模擬器設置狀態格利高裏,作爲它的日曆。 /約翰
NSDateComponents *comps = [NSDateComponents alloc];
[comps setDay:31];
[comps setMonth:12];
[comps setYear:year];
NSCalendar *usersCalendar =[[NSLocale currentLocale] objectForKey:NSLocaleCalendar];
NSDate *date = [usersCalendar dateFromComponents:comps];
NSDateComponents *weekComps =
[usersCalendar components:NSWeekCalendarUnit fromDate:date];
NSInteger totalNumberOfWeeksInThisYear = [weekComps week];
你是什麼意思一週的價值呢?你能向我們展示一些代碼並解釋什麼不起作用嗎? –
我認爲他的意思是他想回答「自1月1日(含)以來有多少星期六已經過去?」對於任何給定的日期。我相信'initRecurrenceWithFrequency'(EventKit中的'EKRecurrenceRule'方法)完全沒有關係,並且沒有任何用處。我只是用幾行數學來做。但我現在不想寫出確切的數學答案...... P – Quuxplusone
您是在說格列高利曆年還是ISO週年?如果是格里高利,那麼這一年總是會在閏年中運行到第53周1天和2天。如果是ISO周,那麼有一系列規則可以確定上週的這一週的星期數。http://en.wikipedia .ORG /維基/ ISO_week_date#LAST_WEEK – Pedro