先看效果圖:

0.周歷.png
我們要解決的問(wèn)題:某年的某個(gè)月顯示哪幾個(gè)周?
我們使用一個(gè)UIPickerView創(chuàng)建自定義的周歷選擇器,數(shù)據(jù)源來(lái)自三個(gè)數(shù)組:1.裝年的數(shù)組 2.裝月的數(shù)組 3.裝周的數(shù)組。
前兩個(gè)數(shù)據(jù)源比較好獲取,想要顯示多少年就把我們需要的年放入到數(shù)組中即可,裝月的數(shù)組更好獲取,直接在數(shù)組中放入12個(gè)月即可,比較難獲取的就是裝周的數(shù)組。
要獲取裝周的數(shù)組中的數(shù)據(jù),首先我們需要確定哪一年、那一月,在確定了年、月之后我們才能確定周。
確定某年的某個(gè)月:
_selectedMonth = [NSDate dateWithYear:[_years[_yearRow] integerValue] Month:[_month[_monthRow] integerValue] Day:1];
在確定了某年某月之后我們可以獲取到這個(gè)月一共有多少個(gè)周。
方法:
[_selectedMonth numberOfWeeksInCurrentMonth];
這個(gè)方法是NSDate的一個(gè)分類中的方法。
我們可以遍歷獲取的到周,從第一周到最后一周,我們可以獲取每一周的第一天和最后一天。
方法:
weekFirstDate = [_selectedMonth beginDateByWeekLevel:i];
weekEndDate = [_selectedMonth endDateByWeekLevel:i];
[self.weekdays addObject:@[weekFirstDate,weekEndDate]];
該方法同樣也是NSDate的一個(gè)分類中的方法,這樣我們就能獲取到第三個(gè)數(shù)組中的數(shù)據(jù)了。
確定某年某月、某月有多少周、每個(gè)周的第一天和最后一天的方法我們都可以通過(guò)NSDate的一個(gè)分類中的方法輕松獲取,下面是一個(gè)別人寫的demo,里面包含了NSDate的分類,大家可以下載下來(lái)看看。
demo地址:***https://gitee.com/liangsenliangsen/week_selector.git
本篇文章到這里就結(jié)束了,愿大家加班不多工資多,男同胞都有女朋友,女同胞都有男朋友。??