YOU'VE MADE A BRAVE DECISION, WELCOME.

每一个不曾起舞的日子都是对生命的辜负。

NSCalendar

NSCalendar


  • 使用这个类需要与NSDate结合

  • 1
    2
    返回新的NSDate对象,如果不能转换则返回nil
    - (NSDate *)dateFromComponents:(NSDateComponents *)comps;
  • 1
    2
    3
    4
    5
    6
    7
    8
    9
    NSDateComponents *comps = [[NSDateComponents alloc] init];
    [comps setYear:1965];
    [comps setMonth:1];
    [comps setDay:6];
    [comps setHour:14];
    [comps setMinute:10];
    [comps setSecond:0];
    NSDate *date = [gregorian dateFromComponents:comps];
    [comps release];
  • 1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    //comps要添加到date的元素 date是要添加到那个date
    opts参数:
    NSCalendarWrapComponents 指定一个可以添加的组件并且围绕0,1溢出
    NSCalendarMatchStrictly
    NSCalendarSearchBackwards
    NSCalendarMatchPreviousTimePreservingSmallerUnits
    NSCalendarMatchNextTimePreservingSmallerUnits
    NSCalendarMatchNextTime
    NSCalendarMatchFirst
    NSCalendarMatchLast
  • (NSDate )dateByAddingComponents:(NSDateComponents )comps toDate:(NSDate *)date options:(NSCalendarOptions)opts;

  • NSCalendarIdentifierGregorian 指定日历的算法
  • NSDateComponents 将时间表示成适合人类阅读和使用的方式,通过NSDateComponents可以快速而简单地获取某个时间点对应年月日等
  • firstWeek 可以修改年月等的起始位置,不能修改日的起始位置
  • isDateInToday(_:) : 如果传入的日期是当天返回 true
  • isDate(_:inSameDayAsDate:) : 如果两个 NSDate 实例在同一天返回 true没必要再去获取日期部件进行比较了
  • nextWeekendStartDate(_:interval:options:afterDate) : 根据传入的前两个参数返回下个周末的开始时间个长度
  • `rangeOfWeekendStartDate(_:interval:containingDate) : 根据传入的前两个参数返回 包含 该日期的周末