ios 计算月数、周数、天数
2016-03-09 13:13
453 查看
通常计算天数的的:
这个大多数情况下似乎是正确的,但是在某些时刻会发下它的结果又是错误的。实际上它计算出的天间隔还是依赖于两个日期间的小时数来判断是否满足一天的间隔。例如:两个日期2016-01-23 13:00:00 和 2016-01-24 10:00:00,在这个方法下计算会得出两个日期的间隔并没有到一天,因为他们的小时数间隔并没有达到24个小时。但我们想让它们的间隔为一天,那么就需要对两个日期进行处理,做法是,把两个日期的钟点抹平;
计算月数:
计算周数类似,
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; [gregorian setFirstWeekday:2]; NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; NSDate *fromDate = [dateFormatter dateFromString:@"2014-06-23 12:02:03"]; NSDate *toDate = [NSDate date]; NSDateComponents *dayComponents = [gregorian components:NSDayCalendarUnit fromDate:fromDate toDate:toDate options:0];
这个大多数情况下似乎是正确的,但是在某些时刻会发下它的结果又是错误的。实际上它计算出的天间隔还是依赖于两个日期间的小时数来判断是否满足一天的间隔。例如:两个日期2016-01-23 13:00:00 和 2016-01-24 10:00:00,在这个方法下计算会得出两个日期的间隔并没有到一天,因为他们的小时数间隔并没有达到24个小时。但我们想让它们的间隔为一天,那么就需要对两个日期进行处理,做法是,把两个日期的钟点抹平;
计算月数:
NSIndexPath *indexPath=[NSIndexPath indexPathForRow:3 inSection:0]; UITableViewCell *cell = [_Table cellForRowAtIndexPath:indexPath]; NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSISO8601Calendar]; // [gregorian setFirstWeekday:2]; NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"yyyy-MM-dd"]; NSDate *fromDate; NSDate *toDate; [gregorian rangeOfUnit:NSCalendarUnitDay startDate:&fromDate interval:NULL forDate:[dateFormatter dateFromString:_BeginDateTime]]; // [gregorian rangeOfUnit:NSDayCalendarUnit startDate:&fromDate interval:NULL forDate:[dateFormatter dateFromString:_BeginDateTime]]; [gregorian rangeOfUnit:NSCalendarUnitDay startDate:&toDate interval:NULL forDate:[dateFormatter dateFromString:_EndDateTime]]; NSDateComponents *dayComponents = [gregorian components:NSCalendarUnitDay fromDate:fromDate toDate:toDate options:0]; _HowLong = round(dayComponents.day/30.0);
计算周数类似,
相关文章推荐
- iOS textfield 键盘弹出后不能切换中文键盘
- [绍棠] 定制iOS 中的导航栏和状态栏
- ios 3D Touch功能的实现
- 如何用代码控制以不同屏幕方向打开新页面【iOS】
- XPC connection interrupted in Xcode 7 for iOS 9
- 【Xamarin挖墙脚系列:Xamarin.IOS的多个Storybord分隔视图的导航】
- ios8中百度推送接收不到
- iOS中用户未登录状态下点击下方tabBar触发登录
- iOS中使用RSA对数据进行加密解密
- ios之block
- NSString转换为char* char*转换为NSString
- iOS 引导用户到系统设置开启定位 访问照片 话筒 相册 相机
- iOS开发中弹窗的方式
- iOS之开发支付功能概述
- 关于ios不同版本间的内存管理差异和iso6与以前版本内存管理的兼容
- iOS界面保持流畅的技巧
- IOS-第三方开源库
- iOS 学习资源
- iOS中如何将token加入到afnetworking中请求当中
- ios内存优化