iOS官方文档 Foundation篇---NSDateInterval

NSDateInterval

表示特定开始日期和结束日期之间的时间跨度的对象。

  • 继承自NSObject;
  • NSDateInterval对象由startDate和endDate组成,表示两个日期之间的间隔;
  • startDate和endDate可以相等,若相等,NSDateInterval的值为0;
  • endDate不能再startDate之前;
  • 计算两日期的间隔时间,并判断日期是否在其中;
  • 比较日期间隔并判断它们是否相交。
创建时间间隔
// 创建日期为当前时间的日期对象
NSDate *date = [NSDate date];// 2019-05-25 05:50:00 +0000

// 创建从当前日期和时间到给定秒数的日期对象。
NSDate *date1 = [NSDate dateWithTimeIntervalSinceNow:24*60*60];//2019-05-26 05:50:00 +0000

// 开始日期和结束日期都为当前日期的时间间隔
NSDateInterval *interval = [[NSDateInterval alloc]init];//(Start Date) 2019-05-25 05:50:00 +0000 + (Duration) 0.000000 seconds = (End Date) 2019-05-25 05:50:00 +0000

// 根据日期和持续时间创建时间间隔
NSDateInterval *interval1 = [[NSDateInterval alloc]initWithStartDate:date duration:24*60*60];//(Start Date) 2019-05-25 05:50:00 +0000 + (Duration) 86400.000000 seconds = (End Date) 2019-05-26 05:50:00 +0000

// 根据起始时间和结束时间创建时间间隔
NSDateInterval *interval2 = [[NSDateInterval alloc]initWithStartDate:date endDate:date1];//(Start Date) 2019-05-25 05:50:00 +0000 + (Duration) 86400.000000 seconds = (End Date) 2019-05-26 05:50:00 +0000
访问时间
// 开始日期和结束日期都为当前日期的时间间隔
NSDateInterval *interval = [[NSDateInterval alloc]init];//(Start Date) 2019-05-25 05:50:00 +0000 + (Duration) 0.000000 seconds = (End Date) 2019-05-25 05:50:00 +0000

// 获取时间间隔的起始时间
NSDate *startDate = interval.startDate;// 2019-05-25 05:50:00 +0000

// 获取时间间隔的结束时间
NSDate *endDate = interval.endDate;// 2019-05-25 05:50:00 +0000

// 获取时间间隔的持续时间
NSTimeInterval timeInterval = interval.duration;//0
比较时间间隔
// 比较时间间隔
NSComparisonResult result =  [interval compare:interval1];//NSOrderedDescending

// 判断两时间间隔是否相等
BOOL isEqual = [interval isEqualToDateInterval:interval1];//NO
判断日期相交
// 判断两时间间隔是否相交
BOOL isIntersect = [interval intersectsDateInterval:interval1];//YES

// 获取两时间间隔的交集
NSDateInterval *interval3 = [interval intersectionWithDateInterval:interval1];//(Start Date) 2019-05-25 05:50:00 +0000 + (Duration) 0.000000 seconds = (End Date) 2019-05-25 05:50:00 +0000
判断日期是否在日期间隔内
// 判断时间间隔是否包含指定日期
BOOL isContain = [interval containsDate:date];//NO

欢迎留言指正,会持续更新!!!

你可能感兴趣的:(iOS官方文档 Foundation篇---NSDateInterval)