iOS开发中创建周历选择器

先看效果图:

0.周历.png

我们要解决的问题:某年的某个月显示哪几个周?

我们使用一个UIPickerView创建自定义的周历选择器,数据源来自三个数组:1.装年的数组 2.装月的数组 3.装周的数组。
前两个数据源比较好获取,想要显示多少年就把我们需要的年放入到数组中即可,装月的数组更好获取,直接在数组中放入12个月即可,比较难获取的就是装周的数组。
要获取装周的数组中的数据,首先我们需要确定哪一年、那一月,在确定了年、月之后我们才能确定周。
确定某年的某个月:

  _selectedMonth = [NSDate dateWithYear:[_years[_yearRow] integerValue] Month:[_month[_monthRow] integerValue] Day:1];

在确定了某年某月之后我们可以获取到这个月一共有多少个周。
方法:

   [_selectedMonth numberOfWeeksInCurrentMonth];

这个方法是NSDate的一个分类中的方法。
我们可以遍历获取的到周,从第一周到最后一周,我们可以获取每一周的第一天和最后一天。
方法:

  weekFirstDate = [_selectedMonth beginDateByWeekLevel:i];
    weekEndDate = [_selectedMonth endDateByWeekLevel:i];
  [self.weekdays addObject:@[weekFirstDate,weekEndDate]];

该方法同样也是NSDate的一个分类中的方法,这样我们就能获取到第三个数组中的数据了。

确定某年某月、某月有多少周、每个周的第一天和最后一天的方法我们都可以通过NSDate的一个分类中的方法轻松获取,下面是一个别人写的demo,里面包含了NSDate的分类,大家可以下载下来看看。

demo地址:***https://gitee.com/liangsenliangsen/week_selector.git

本篇文章到这里就结束了,愿大家加班不多工资多,男同胞都有女朋友,女同胞都有男朋友。😊

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 主要有以下几个类: NSDate:表示一个具体的绝对的时间点。NSTimeZone:表示时区信息。NSLocale...
    献国阅读 5,292评论 0 4
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,142评论 1 32
  • 1.badgeVaule气泡提示 2.git终端命令方法> pwd查看全部 >cd>ls >之后桌面找到文件夹内容...
    i得深刻方得S阅读 4,752评论 1 9
  • 坚持日更66天之后,结束日更,开始做别的,更有意思或者更无聊的事情,就是去探索!
    魔法新石阅读 56评论 0 1
  • 一下午的时间,宝玉都在看资料听汇报接电话,等歇下来才突然记起和林黛玉吵过架呢,匆匆收拾一下皮包决定晚上不再应酬,去...
    安珊_395a阅读 411评论 0 6