NSCalendar 的 rangeOfUnit:startDate:interval:forDate 到底在做什么?
What is NSCalendar's rangeOfUnit:startDate:interval:forDate really doing?
我正在将我的一些非常旧的代码从 Objective C 转换为 Swift,并且我 运行 跨越了这个怪物。我无法弄清楚我在这里做什么。查看有关 运行geOfUnit 方法的文档,我感到很困惑。
我好像只是想知道这两个日期之间有多少天,但这似乎是 真的 st运行ge 方法.
NSDate *fromDate, *toDate;
[self.calendar rangeOfUnit:NSCalendarUnitDay startDate:&fromDate interval:0 forDate:event.startDate];
[self.calendar rangeOfUnit:NSCalendarUnitDay startDate:&toDate interval:0 forDate:event.endDate];
NSInteger difference = labs([self.calendar components:NSCalendarUnitDay fromDate:fromDate toDate:toDate options:0].day) + 1;
方法rangeOfUnit
计算分别包含给定日期的日历单元(这里day
)的开始,这意味着午夜。指针 fromDate
和 toDate
包含 return 上的结果。 interval
参数的指针为 return 86400,即日历单位的 NSTimeInterval
。
NSCalendar
有一种方法可以更轻松地完成同样的事情:
NSDate *fromDate = [self.calendar startOfDayForDate:event.startDate];
我正在将我的一些非常旧的代码从 Objective C 转换为 Swift,并且我 运行 跨越了这个怪物。我无法弄清楚我在这里做什么。查看有关 运行geOfUnit 方法的文档,我感到很困惑。
我好像只是想知道这两个日期之间有多少天,但这似乎是 真的 st运行ge 方法.
NSDate *fromDate, *toDate;
[self.calendar rangeOfUnit:NSCalendarUnitDay startDate:&fromDate interval:0 forDate:event.startDate];
[self.calendar rangeOfUnit:NSCalendarUnitDay startDate:&toDate interval:0 forDate:event.endDate];
NSInteger difference = labs([self.calendar components:NSCalendarUnitDay fromDate:fromDate toDate:toDate options:0].day) + 1;
方法rangeOfUnit
计算分别包含给定日期的日历单元(这里day
)的开始,这意味着午夜。指针 fromDate
和 toDate
包含 return 上的结果。 interval
参数的指针为 return 86400,即日历单位的 NSTimeInterval
。
NSCalendar
有一种方法可以更轻松地完成同样的事情:
NSDate *fromDate = [self.calendar startOfDayForDate:event.startDate];