iOS 日历
2016-07-14 21:35
405 查看
这两天需要做一个日历,自己研究了一下写了一个简单的Demo版本出来供大家参考,纯代码写的
首先,日历我是用collection view写的,其次,我用的是自带的date属性来获取数据的
最主要的方法就是获取数据源,下面是我注释的基本数据源方法
#pragma mark -- date//得到今天是几号
- (NSInteger)day:(NSDate *)date{
NSDateComponents *components = [[NSCalendarcurrentCalendar]components:(NSCalendarUnitYear
|NSCalendarUnitMonth |NSCalendarUnitDay)
fromDate:date];
return [componentsday];
}
//得到今天是几月
- (NSInteger)month:(NSDate *)date{
NSDateComponents *components = [[NSCalendarcurrentCalendar]components:(NSCalendarUnitYear
|NSCalendarUnitMonth |NSCalendarUnitDay)
fromDate:date];
return [componentsmonth];
}
//得到今年是几年
- (NSInteger)year:(NSDate *)date{
NSDateComponents *components = [[NSCalendarcurrentCalendar]components:(NSCalendarUnitYear
|NSCalendarUnitMonth |NSCalendarUnitDay)
fromDate:date];
return [componentsyear];
}
//第一周的第一天在什么位置
- (NSInteger)firstWeekdayInThisMonth:(NSDate *)date{
NSCalendar *calendar = [NSCalendarcurrentCalendar];
[calendar setFirstWeekday:1];//1.Sun. 2.Mon. 3.Thes. 4.Wed. 5.Thur.
6.Fri. 7.Sat.
NSDateComponents *comp = [calendarcomponents:(NSCalendarUnitYear
|NSCalendarUnitMonth |
NSCalendarUnitDay) fromDate:date];
[comp setDay:1];
NSDate *firstDayOfMonthDate = [calendardateFromComponents:comp];
NSUInteger firstWeekday = [calendarordinalityOfUnit:NSCalendarUnitWeekdayinUnit:NSCalendarUnitWeekOfMonthforDate:firstDayOfMonthDate];
return firstWeekday -1;
}
//这个月有多少天
- (NSInteger)totaldaysInThisMonth:(NSDate *)date{
NSRange totaldaysInMonth = [[NSCalendarcurrentCalendar]rangeOfUnit:NSCalendarUnitDayinUnit:NSCalendarUnitMonthforDate:date];
return totaldaysInMonth.length;
}
//上个月的date数据(用于刷新)
- (NSDate *)lastMonth:(NSDate *)date{
NSDateComponents *dateComponents = [[NSDateComponentsalloc]init];
dateComponents.month = -1;
NSDate *newDate = [[NSCalendarcurrentCalendar]dateByAddingComponents:dateComponentstoDate:dateoptions:0];
return newDate;
}
//下个月的date数据(用于刷新)
- (NSDate*)nextMonth:(NSDate *)date{
NSDateComponents *dateComponents = [[NSDateComponentsalloc]init];
dateComponents.month = +1;
NSDate *newDate = [[NSCalendarcurrentCalendar]dateByAddingComponents:dateComponentstoDate:dateoptions:0];
return newDate;
}
看下效果
不好意思,上次传的没传上去,见谅,这次传上去了
我已经上传到git上面了:https://github.com/liuhugit/NewDate
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- dos 日期时间格式设置使用小结(Date和Time)
- DOS批处理之DATE命令的使用方法详解
- 如何解决ORA-01843与NLS_DATE_FORMAT问题
- ExtJs的Date格式字符代码
- jQuery支持添加事件的日历特效代码分享(3种样式)
- PHP中Date获取时间不正确怎么办
- php简单日历函数
- Insert Date and Time into Access
- 简单JavaScript日历及详细说明
- JavaScript:Date类型全面解析
- 兼容FireFox 的 js 日历 支持时间的获取
- js css+html实现简单的日历
- javascript中Date对象应用之简易日历实现