有些事情没有加起来。
我需要知道在2012年12月21日之前有多少天
NSDateFormatter *df= [[NSDateFormatter alloc] init];
NSDate *today = [[NSDate alloc] initWithTimeIntervalSinceNow:0];
NSDate *dec21 = [[NSDate alloc] init];
dec21 = [df dateFromString:@"2012-12-21"];
NSCalendar *gregorian = [[NSCalendar alloc]
initWithCalendarIdentifier:NSGregorianCalendar];
NSUInteger unitFlags = NSMonthCalendarUnit | NSDayCalendarUnit;
NSDateComponents *components = [gregorian components:unitFlags
fromDate:today
toDate:dec21 options:0];
NSInteger days = [components day];
NSInteger months = [components month];
NSString *result = [[NSString alloc] initWithFormat:@"About %d months and %d days left", months, days];
此代码表明仍有129个月。
我缺少什么?
答案 0 :(得分:0)
您的日期格式化程序没有格式设置,因此它不会返回12月21日的NSDate。创建格式化程序后添加以下行:
df.dateFormat = @"yyyy-MM-dd";
你已经确定了,直到你的下一个问题,结果现在说:
大约2个月零11天
您还需要包括这些年份,并将其添加到月份数字中,以便在您只计算数月和数天的情况下获得实际剩余时间。