【发布时间】:2015-06-29 09:12:48
【问题描述】:
使用NSDateComponents我想比较出发日期和现在,看看出发日期是否> 30天。
我使用NSDateComponents 功能,但在调试它时,当我预计它是 3 天、15 天或其他任何时间时,它总是像一个非常大的数字。
NSDate* now = [NSDate date];
NSUInteger unitFlags = NSDayCalendarUnit;
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *components = [calendar components:unitFlags fromDate:departureDate toDate:now options:0];
NSInteger age = [components day]+1;
当我尝试记录年龄时
NSLog(@"age (in days) = %lu", (long) age);
它返回一个很长的数字,例如18446744073709551613
我想做一个 if 语句:
if (age > 30) 但当返回的年龄是这样的长数字时,我不确定如何执行此操作。
非常感谢
【问题讨论】:
-
你登录
departureDate和now了吗?我认为[components day]也应该是负数,因为我猜departureDate晚于now。所以你的测试> 30不应该正确触发。 -
NSLog(@"age")记录age,而不是名为age的变量的内容。请向我们展示真实的日志记录代码。 -
你是对的,NSLog 年龄不记录年龄。我更新了问题
标签: objective-c nsdatecomponents date-comparison