返回顶部

收藏

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:00
    NSDate *today2 = [formatter dateFromString:[formatter stringFromDate:today]];

    NSDate *newDate = [formatter dateFromString:time];
    // 时分秒转为00:00:00
    NSDate *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;
}
//该片段来自于http://outofmemory.cn

标签:objective-c,手机开发

收藏

0人收藏

支持

0

反对

0

»更多 您可能感兴趣的代码
  1. 2014-03-09 12:30:04UIViewController之间的切换 by 刘瑜
  2. 2014-05-06 15:35:36设置视图的圆角 by royacee
  3. 2014-05-26 20:31:21按照原比例来对视图进行缩放 by Sycro
  4. 2014-07-10 10:09:14判断是否是iPhone5 by 孙国强
  5. 2014-09-08 12:41:37打开设备闪关灯 by zetaliang
  6. 2014-09-21 12:39:43获取屏幕的高宽 by 王笃亭
  7. 2014-08-21 21:07:19iOS5和iOS6横竖屏同时支持 by panzaitang
  8. 2014-10-25 10:28:48禁止某几个文件用ARC模式编译 by lihuibng
  9. 2014-03-09 13:55:34IOS从背景图中取色 by 凤歌
  10. 2014-04-20 13:32:43视图翻转切换效果 by 牛哥
  11. 2014-06-15 10:54:58IOS画圆 by ccyuan

发表评论