时间:2021-07-05 09:23:13 | 栏目:iOS代码 | 点击:次
有个项目需求是做个在日期上选择的,就是这种:
网上看了几个日期的demo都太厚重了,移植起来太麻烦,然后打算自己写。
就先写个简化的demo看看,主要有几个关键点:
其中有一个容易迷糊的是获取的星期天是第一天,下标是1
所以我们的数组是这样的
_weekdays = [NSArray arrayWithObjects: [NSNull null],@"星期日", @"周一", @"周二", @"周三", @"周四", @"周五", @"周六", nil];
好吧,看下写出来的效果:
总的来说没什么难度,就是要熟悉下关于日期的api.
//3.获取这个月总天数,填充数据源 NSRange range = [calendar rangeOfUnit:NSCalendarUnitDay inUnit:NSCalendarUnitMonth forDate:self.currentDate]; NSUInteger numberOfDaysInMonth = range.length; NSLog(@"%lu", (unsigned long)numberOfDaysInMonth); //4.获取这个月的第一天为周几 NSCalendar *cal = [NSCalendar currentCalendar]; NSDateComponents *comps = [cal components:NSCalendarUnitYear | NSCalendarUnitMonth fromDate:self.currentDate]; lastMonthComps.day = 1; NSDate *firstDay = [cal dateFromComponents:comps]; NSCalendarUnit calendarUnit = NSCalendarUnitWeekday; NSDateComponents *firsComponents = [cal components:calendarUnit fromDate:firstDay]; NSLog(@"%@", [_weekdays objectAtIndex:firsComponents.weekday]);