iOS 计算两个日期之前相隔多少晚
2014-01-19 16:00
337 查看
iOS的NSCalendar可以计算两个日期之间相隔的天数,代码如下:
start:2014-01-19 04:15:22 +0000
end:2014-01-20 04:15:22 +0000
day:1
start:2014-01-19 04:15:44 +0000
end:2014-01-21 04:15:33 +0000
day:1
在stackoverflow上找到了一个可行的方法,经稍微改进,现在可以只计算日期,忽略时间,得到两个日期之间相差多少晚,代码如下:
- (NSInteger)daysFromDate:(NSDate *)startDate toDate:(NSDate *)endDate{ NSLog(@"start:%@", startDate); NSLog(@"end:%@", endDate); NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; unsigned int unitFlags = NSDayCalendarUnit; NSDateComponents *comps = [gregorian components:unitFlags fromDate:startDate toDate:endDate options:0]; NSLog(@"day:%d", [comps day]); return [comps day]; }但这样得到的结果有时会出现下面的现象,
start:2014-01-19 04:15:22 +0000
end:2014-01-20 04:15:22 +0000
day:1
start:2014-01-19 04:15:44 +0000
end:2014-01-21 04:15:33 +0000
day:1
在stackoverflow上找到了一个可行的方法,经稍微改进,现在可以只计算日期,忽略时间,得到两个日期之间相差多少晚,代码如下:
- (NSInteger)daysFromDate:(NSDate *)startDate toDate:(NSDate *)endDate{ NSDateFormatter *temp = [[NSDateFormatter alloc] init]; [temp setDateFormat:@"yyyy-MM-dd"]; NSDate *stDt = [temp dateFromString:[temp stringFromDate:startDate]]; NSDate *endDt = [temp dateFromString:[temp stringFromDate:endDate]]; NSTimeZone *zone = [NSTimeZone systemTimeZone]; NSInteger interval = [zone secondsFromGMTForDate:stDt]; stDt = [stDt dateByAddingTimeInterval: interval]; interval = [zone secondsFromGMTForDate:endDt]; endDt = [endDt dateByAddingTimeInterval:interval]; unsigned int unitFlags = NSMonthCalendarUnit | NSDayCalendarUnit; NSDateComponents *comps = [self.calendar components:unitFlags fromDate:stDt toDate:endDt options:0]; return [comps day]; }
相关文章推荐
- php计算两个日期相隔多少年,多少月,多少日的函数
- 计算两个日期间相隔了多少周
- 设计一个程序输入两个日期计算相隔多少天,或计算一个日期加上间隔后的日期。
- 计算出两个日期相隔多少天
- 计算两个日期相隔天数 思路:假设1998-10-10 2010-5-5 首先获取1889-10-10这个日期在这一年中还剩多少天 再次获取2010-5-5这个日子在这一年内已经过了
- 计算出两个日期相隔多少天
- 计算两个日期相隔多少年,多少月,多少天
- java实现计算两个日期相差多少月、比较两个日期大小 等常用日期操作
- iOS中计算两个日期的间隔的天数
- 用JS计算两个日期之间有多少个休息日
- 计算两个日期之间相差多少天,计算当前日期是星期几
- php计算两个日期相差多少天(日)…
- python 计算两个日期相差多少个月
- IOS计算两个日期的差值
- 工具方法:JAVA计算两个日期之前相差的天数
- 计算任意两个日期之间相隔的天数以及年数
- javascript 计算日期之间相隔多少天
- SQL语句计算两个日期之间有多少个工作日的方法
- java计算两个日期间相差多少天多少小时多少分多少秒
- 计算两个日期之间相差多少个小时