打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
IOS计算某个日期和当前时间的天数差

我的某个IOS项目中,需要分组来显示签到记录, 每天可能有多次签到, 用天来对签到记录进行分组。

每一条签到记录都有一个时间字段,分组的标题就是用时间中的日期来显示的,例如:如果时间为 2013-1-25 01:01:01 那么分组的标题就为 2013-1-25。如果今天是2013-1-25,直接显示2013-1-25是不是觉得体验不好?“今天”反而觉得一目了然,呵呵。

于是我写了一个函数计算某个时间和当前时间的天数差.

我把这个函数收入在一个工具类中,便于以后直接使用。如果你用的着,你也可以放到项目中使用。

我调用这个函数,判断返回值:

如果 result=0, 表示今天

如果 result=-1, 表示昨天

如果 result<-1 标示昨天以前

如果 result>0 标示将来的某一天。

+ (NSInteger)numberOfDaysFromTodayByTime:(NSString )time timeStringFormat:(NSString )format{ // format可以形如: @'yyyy-MM-dd'
NSDate *today = [NSDate date];NSTimeZone *localTimeZone = [NSTimeZone systemTimeZone];NSDateFormatter *formatter = [[NSDateFormatter alloc] init];[formatter setTimeZone:localTimeZone];[formatter setDateFormat:NSLocalizedString(format,nil)];// 时分秒转为00:00:00NSDate *today2 = [formatter dateFromString:[formatter stringFromDate:today]];NSDate *newDate = [formatter dateFromString:time];// 时分秒转为00:00:00NSDate *newDate2 = [formatter dateFromString:[formatter stringFromDate:newDate]];double dToday = [G2XToolkits numberOfSecondsFrom1970:today2];double dNewDate = [G2XToolkits numberOfSecondsFrom1970:newDate2];NSInteger nSecs = (NSInteger)(dNewDate - dToday);NSInteger oneDaySecs = 24*3600;return nSecs / oneDaySecs;

}</pre>

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
时区日期处理及定时 (NSDate,NSCalendar,NSTimer,NSTimeZone)
NSString转NSDate为nil原因
iOS日期的比较
获取时间 年月日时分秒 星期
NSDate的常见用法总结
iOS时间那点事
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服