前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ios 两个时间相差多少天多少小时多少分多少秒

ios 两个时间相差多少天多少小时多少分多少秒

作者头像
赵哥窟
发布2018-09-13 11:44:29
2.4K0
发布2018-09-13 11:44:29
举报
文章被收录于专栏:日常技术分享日常技术分享

今天用到一个时间类,之前写过但是一时找不到了在此记录一下方便以后查看。

代码语言:javascript
复制
/**
 两个时间相差多少天多少小时多少分多少秒

 @param startTime 开始时间
 @param endTime 结束时间
 @return 相差时间
 */
+ (NSString *)dateTimeDifferenceWithStartTime:(NSString *)startTime endTime:(NSString *)endTime
{
    
    NSDateFormatter *date = [[NSDateFormatter alloc]init];
    [date setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
    
    NSDate *startDate =[date dateFromString:startTime];
    NSDate *endDdate = [date dateFromString:endTime];
    
    NSTimeInterval startInterval = [startDate timeIntervalSince1970]*1;
    NSTimeInterval endInterval = [endDdate timeIntervalSince1970]*1;
    NSTimeInterval value = endInterval - startInterval;
    
    // 天
    int day = (int)value / (24 *3600);
    // 小时
    int house = (int)value / (24 *3600)%3600;
    // 分
    int minute = (int)value /60%60;
    // 秒
    int second = (int)value %60;
    
    NSString *timeStr;
    
    if (day != 0) {
        timeStr = [NSString stringWithFormat:@"%d天%d小时%d分%d秒",day,house,minute,second];
    }
    else if (day==0 && house !=0) {
        timeStr = [NSString stringWithFormat:@"%d小时%d分%d秒",house,minute,second];
    }
    else if (day==0 && house==0 && minute!=0) {
        timeStr = [NSString stringWithFormat:@"%d分%d秒",minute,second];
    }
    else{
        timeStr = [NSString stringWithFormat:@"%d秒",second];
    }
    
    return timeStr;
}

方法二

代码语言:javascript
复制
- (NSString *)dateTimeDifferenceWithStartTime:(NSString *)startTime endTime:(NSString *)endTime
{
    NSDateFormatter *date = [[NSDateFormatter alloc]init];
    [date setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
    
    NSDate *startDate =[date dateFromString:startTime];
    NSDate *endDdate = [date dateFromString:endTime];
    
    NSCalendar *cal = [NSCalendar currentCalendar];
    unsigned int unitFlags = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond;
    NSDateComponents *dateComponents = [cal components:unitFlags fromDate:startDate toDate:endDdate options:0];
    
    // 天
    NSInteger day = [dateComponents day];
    // 小时
    NSInteger house = [dateComponents hour];
    // 分
    NSInteger minute = [dateComponents minute];
    // 秒
    NSInteger second = [dateComponents second];
    
    NSString *timeStr;
    
    if (day != 0) {
        timeStr = [NSString stringWithFormat:@"%zd天%zd小时%zd分%zd秒",day,house,minute,second];
    }
    else if (day==0 && house !=0) {
        timeStr = [NSString stringWithFormat:@"%zd小时%zd分%zd秒",house,minute,second];
    }
    else if (day==0 && house==0 && minute!=0) {
        timeStr = [NSString stringWithFormat:@"%zd分%zd秒",minute,second];
    }
    else{
        timeStr = [NSString stringWithFormat:@"%zd秒",second];
    }
    
    return timeStr;
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.08.29 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档