【问题标题】:Find out if two calendar days have past between two dates查明两个日历日是否在两个日期之间过去
【发布时间】:2014-04-07 08:58:04
【问题描述】:

我想知道两个日期之间是否过去了两个日历日。

我尝试过使用

NSDateComponents *components = [[NSCalendar currentCalendar] components:NSDayCalendarUnit fromDate:date toDate:now options:0];
NSInteger days = [components day];  

并检查是否天数> = 2,但似乎只有一整天过去后才计算天数。

例如,如果两个日期是:
星期一 01:00 am
周日晚上 11:00

结果将是 0,
我希望得到 1,因为星期天与星期一不同。

【问题讨论】:

  • 您能否提供更多代码,例如您的检查天数?

标签: ios iphone objective-c nsdate nscalendar


【解决方案1】:

您必须将两个日期“标准化”为相应日期的开始

NSCalendar *cal = [NSCalendar currentCalendar];
NSDate *startOfToday, *startOfOtherDay;
[cal rangeOfUnit:NSDayCalendarUnit startDate:&startOfToday interval:NULL forDate:now];
[cal rangeOfUnit:NSDayCalendarUnit startDate:&startOfOtherDay interval:NULL forDate:date];

然后计算差值:

NSDateComponents *components = [cal components:NSDayCalendarUnit fromDate:startOfOtherDay toDate:startOfToday options:0];
NSInteger days = [components day];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-11
    • 1970-01-01
    • 2012-09-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多