计算天数、nsdate、ios
我计算两个日期之差的方法是计算天数、nsdate、ios,ios,objective-c,nsdate,nsdatecomponents,Ios,Objective C,Nsdate,Nsdatecomponents,我计算两个日期之差的方法是 NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; NSDateComponents *nowAndEnd = [calendar components:NSMonthCalendarUnit|
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *nowAndEnd = [calendar components:NSMonthCalendarUnit|
NSDayCalendarUnit|
NSMinuteCalendarUnit
fromDate:now
toDate:end
options:0];
NSLog(@"nowAndEnd's day is %d",nowAndEnd.day);
NSLog(@"nowAndEnd's month is %d",nowAndEnd.month);
而我回来的是
nowAndEnd's day is 15
nowAndEnd's month is 1
问题是我如何根据这些信息计算天数。我这样问是因为有些月份有30天,有些月份有31天…您所做的是正确的,但如果您希望只在几天内执行计算,只需单独使用
NSDayCalendarUnit
:
NSDateComponents *nowAndEnd = [calendar components:NSDayCalendarUnit
fromDate:now
toDate:end
options:0];
NSDateComponents*NowanEnd=[日历组件:NSDayCalendarUnit
起始日期:现在
今天:结束
选项:0];
答案将直接计算到天数。您所做的是正确的,但如果您只想在天数上执行计算,只需单独使用
NSDayCalendarUnit
:
NSDateComponents *nowAndEnd = [calendar components:NSDayCalendarUnit
fromDate:now
toDate:end
options:0];
NSDateComponents*NowanEnd=[日历组件:NSDayCalendarUnit
起始日期:现在
今天:结束
选项:0];
答案将直接计算到天数。“我如何计算天数”-你刚刚这么做了,不是吗。可能重复:一天是14天,但你也有一个月,所以总天数应该是1*30+15或1*31+15,甚至1*28+15“我如何计算天数”-你刚刚这么做,不是吗。可能的重复:一天是14天,但你也有一个月,所以总天数应该是1*30+15或1*31+15,甚至1*28+15。谢谢你指出这一点。然而,我得到的天数比实际总天数短,例如,实际总天数是47天,我得到46天……这很奇怪。无论如何,在计算中不考虑开始日。所以从1月1日到2月5日,你有(31-1)+5=35天,而不是36天。谢谢你指出这一点。然而,我得到的天数比实际总天数短,例如,实际总天数是47天,我得到46天……这很奇怪。无论如何,在计算中不考虑开始日。所以从1月1日到2月5日,你有(31-1)+5=35天,而不是36天。