iOS 日历

      之前在网上找了很多例子,但是大多封装的太深,对于我这种小白来说,有点看不懂,自己就研究一下,写了一个。废话不多说,直接上图。


对于日历来说重要的有以下三点:

1、判断某月有几天。

2、判断某月第一天是星期几。

3、判断选择的是星期几。

剩下的就是纯粹的界面摆放。

一、判断某月有多少天

//判断一个月有多少天

NSCalendar *calendar = [NSCalendar currentCalendar];
NSRange range =[calendar rangeOfUnit:NSCalendarUnitDay inUnit:NSCalendarUnitMonth forDate:_recordDate];
NSUInteger numberOfDaysInMonth = range.length;

二、判断某月第一天是星期几

//判断某月的第一天是星期几 星期日 返回 1
-(NSInteger)firstDay:(NSDate *)date
{
//获取当前月的第一天
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
NSCalendar *cal = [NSCalendar currentCalendar];
NSDateComponents *comps = [gregorian components:NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay|kCFCalendarUnitHour|kCFCalendarUnitMinute|kCFCalendarUnitSecond fromDate:date];
[comps setDay:1];
NSDate *firstDay = [cal dateFromComponents:comps];

//获取当前月的第一天是星期几 星期日 返回 1
NSDateComponents *dateComponents = [gregorian components:NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond | kCFCalendarUnitWeekday | NSCalendarUnitWeekday | NSCalendarUnitWeekOfMonth | NSCalendarUnitWeekOfYear fromDate:firstDay];

return dateComponents.weekday;
}

三、判断选择的是星期几

//获取选择是星期几 星期日 返回 1
-(NSString *)todayDate:(NSDate *)date
{
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
NSDateComponents *dateComponents = [gregorian components:NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond | kCFCalendarUnitWeekday | NSCalendarUnitWeekday | NSCalendarUnitWeekOfMonth | NSCalendarUnitWeekOfYear fromDate:date];

NSArray *weekArray = [NSArray arrayWithObjects:@"星期日", @"星期一",@"星期二",@"星期三",@"星期四",@"星期五",@"星期六",nil];

return weekArray[dateComponents.weekday - 1 ];

}

例子下载地址  http://download.csdn.net/detail/qq_14827361/9512952

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值