iOS自定義日期demo分享
有個項目需求是做個在日期上選擇的,就是這種:
網(wǎng)上看了幾個日期的demo都太厚重了,移植起來太麻煩,然后打算自己寫。
就先寫個簡化的demo看看,主要有幾個關鍵點:
- 首先要根據(jù)當前日期獲取這個月有幾天
- 然后判斷這個月份第一天是周幾
- 再根據(jù)上面兩個數(shù)據(jù)在合理的位置顯示數(shù)據(jù)
- 還要記錄下當前的日期方便切換月份
- 如果調(diào)接口的話其實根據(jù)后臺給數(shù)據(jù)比對下對應的日期展示數(shù)據(jù)即可
其中有一個容易迷糊的是獲取的星期天是第一天,下標是1
所以我們的數(shù)組是這樣的
_weekdays = [NSArray arrayWithObjects: [NSNull null],@"星期日", @"周一", @"周二", @"周三", @"周四", @"周五", @"周六", nil];
好吧,看下寫出來的效果:
總的來說沒什么難度,就是要熟悉下關于日期的api.
//3.獲取這個月總天數(shù),填充數(shù)據(jù)源 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]);
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
深入理解Objective-C中類的數(shù)據(jù)結構
最近發(fā)現(xiàn)用Objective-C確實好容易,下面這篇文章主要給大家介紹了關于Objective-C中類的數(shù)據(jù)結構的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面隨著小編來一起學習學習吧2018-05-05詳解iOS應用的設計模式開發(fā)中Mediator中介者模式的使用
這篇文章主要介紹了iOS應用的設計模式開發(fā)中Mediator中介者模式的使用,示例代碼為傳統(tǒng)的Objective-C語言,需要的朋友可以參考下2016-03-03