Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
计算天数、nsdate、ios_Ios_Objective C_Nsdate_Nsdatecomponents - Fatal编程技术网

计算天数、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天。