欢迎光临
我们一直在努力

日期选择器、日历

建站超值云服务器,限时71元/月

日期选择器、日历

项目介绍:

常见的日历

github地址

常见的日历

之前没做过日历的时候感觉很难,做过一遍之后,发现其实并不是男,只是麻烦了些。因为我为了省事,有些东西只是简单的举一个例子什么的,比较懒。大家有什么需要延伸的功能都可以在里面找下对应的东西。话不多说,看吧。

pragma mark -Private //返回当月天数

(NSUInteger)numberOfDaysInMonth:(NSDate )date{ NSCalendar greCalendar = [[NSCalendar alloc]initWithCalendarIdentifier:NSCalendarIdentifierGregorian]; [greCalendar setTimeZone:[NSTimeZone timeZoneWithName:@”GMT”]]; return [greCalendar rangeOfUnit:NSCalendarUnitDay inUnit:NSCalendarUnitMonth forDate:date].length;
}

//返回当月第一天数据

(NSDate )firstDateOfMonth:(NSDate )date{ NSCalendar greCalendar = [[NSCalendar alloc]initWithCalendarIdentifier:NSCalendarIdentifierGregorian]; [greCalendar setTimeZone:[NSTimeZone timeZoneWithName:@”GMT”]]; NSDateComponents comps = [greCalendar components:NSCalendarUnitYear | NSCalendarUnitMonth |NSCalendarUnitWeekday | NSCalendarUnitDay fromDate:date]; comps.day = 1; return [greCalendar dateFromComponents:comps]; }

(NSUInteger)startDayOfWeek:(NSDate )date { NSCalendar greCalendar = [[NSCalendar alloc]initWithCalendarIdentifier:NSCalendarIdentifierGregorian]; [greCalendar setTimeZone:[NSTimeZone timeZoneWithName:@”GMT”]];//Asia/Shanghai NSDateComponents *comps = [greCalendar components:NSCalendarUnitYear | NSCalendarUnitMonth |NSCalendarUnitWeekday | NSCalendarUnitDay fromDate:[self firstDateOfMonth:date]]; return comps.weekday; }

//上个月

(NSDate )getLastMonth:(NSDate )date{ NSCalendar greCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian]; [greCalendar setTimeZone:[NSTimeZone timeZoneWithName:@”GMT”]]; NSDateComponents comps = [greCalendar components:NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay fromDate:date]; comps.month -= 1; return [greCalendar dateFromComponents:comps]; } //下个月
(NSDate )getNextMonth:(NSDate )date{ NSCalendar greCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian]; [greCalendar setTimeZone:[NSTimeZone timeZoneWithName:@”GMT”]]; NSDateComponents comps = [greCalendar components:NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay fromDate:date]; comps.month += 1; return [greCalendar dateFromComponents:comps]; }
//目标日期

(NSDate )getCurrentMonth:(NSDate )date andYear:(NSInteger)year andMonth:(NSInteger)month andDay:(NSInteger)day{ NSCalendar greCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian]; [greCalendar setTimeZone:[NSTimeZone timeZoneWithName:@”GMT”]]; NSDateComponents comps = [greCalendar components:NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay fromDate:date]; comps.year = year; comps.month = month; comps.day = day; return [greCalendar dateFromComponents:comps]; }
//当前月

(NSDate )getCurrentMonth:(NSDate )date{ NSCalendar greCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian]; [greCalendar setTimeZone:[NSTimeZone timeZoneWithName:@”GMT”]]; NSDateComponents comps = [greCalendar components:NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay fromDate:date]; return [greCalendar dateFromComponents:comps]; }
//日期的当天

(NSDate )dateOfDay:(NSInteger)day{ NSCalendar greCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian]; [greCalendar setTimeZone:[NSTimeZone timeZoneWithName:@”GMT”]]; NSDateComponents *comps = [greCalendar components:NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay fromDate:self.chooseDate]; comps.day = day; return [greCalendar dateFromComponents:comps]; }
@end

@implementation CalendarHeaderView

(instancetype)initWithFrame:(CGRect)frame{ if (self = [super initWithFrame:frame]) {

NSArray *weekArray = [[NSArray alloc] initWithObjects:@”日”,@”一”,@”二”,@”三”,@”四”,@”五”,@”六”, nil];

for (int i=0; i<weekArray.count; i++) {

  UILabel *weekLabel = [[UILabel alloc] initWithFrame:CGRectMake(i*Iphone6Scale(54), 0, Iphone6Scale(54), HeaderViewHeight)];
  weekLabel.textAlignment = NSTextAlignmentCenter;
  weekLabel.textColor = [UIColor grayColor];
  weekLabel.font = [UIFont systemFontOfSize:13.f];
  weekLabel.text = weekArray[i];
  [self addSubview:weekLabel];

}

UIView *lineView = [[UIView alloc] initWithFrame:CGRectMake(0, HeaderViewHeight, self.frame.size.width, 1)];
lineView.backgroundColor = kRGBColor(0, 134, 237);

[self addSubview:lineView];
} return self; } @end

@implementation CalendarCell

(instancetype)initWithFrame:(CGRect)frame{ if (self = [super initWithFrame:frame]) { CGFloat width = self.contentView.frame.size.width0.6; CGFloat height = self.contentView.frame.size.height0.6;

// 选中BG
UIView* selectedBGView = [[UIView alloc] initWithFrame:CGRectMake( (self.contentView.width – self.contentView.height) / 2.0, 0, self.contentView.height, self.contentView.height)];
selectedBGView.tag = 9588;
selectedBGView.hidden = YES;
selectedBGView.layer.cornerRadius = selectedBGView.bounds.size.width / 2.0;
selectedBGView.backgroundColor = kRGBColor(24, 147, 239);

UILabel dayLabel = [[UILabel alloc] initWithFrame:CGRectMake( self.contentView.frame.size.width0.5-width0.5, self.contentView.frame.size.height0.5-height*0.5, width, height )];
dayLabel.textAlignment = NSTextAlignmentCenter;

dayLabel.font = [UIFont boldSystemFontOfSize:13];
dayLabel.backgroundColor = [UIColor clearColor];

[self.contentView addSubview:selectedBGView];
[self.contentView addSubview:dayLabel];

self.dayLabel = dayLabel;
} return self; }

(void)setMonthModel:(MonthModel *)monthModel{ _monthModel = monthModel; self.dayLabel.text = [NSString stringWithFormat:@”%02ld”,monthModel.dayValue];

if (monthModel.isSelectedDay) { self.dayLabel.text = @”今天”; }

if (monthModel.isCanClick) { self.dayLabel.textColor = [UIColor blackColor]; self.userInteractionEnabled = YES;

} else { self.dayLabel.textColor = [UIColor lightGrayColor]; self.userInteractionEnabled = NO; } }

@end

@implementation MonthModel
|10 [/pan]

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 日期选择器、日历
分享到: 更多 (0)