How to calculate time in hours between two dates in iOS

后端 未结 5 1141
野性不改
野性不改 2020-11-29 19:24

How can I calculate the time elapsed in hours between two times (possibly occurring on different days) in iOS?

5条回答
  •  -上瘾入骨i
    2020-11-29 20:04

    Checkout : It takes care of daylight saving, leap year as it used iOS calendar to calculate. You can change the string and conditions to includes minutes with hours and days.

    +(NSString*)remaningTime:(NSDate*)startDate endDate:(NSDate*)endDate {
    
        NSDateComponents *components;
        NSInteger days;
        NSInteger hour;
        NSInteger minutes;
        NSString *durationString;
    
        components = [[NSCalendar currentCalendar] components: NSCalendarUnitDay|NSCalendarUnitHour|NSCalendarUnitMinute
                                                     fromDate: startDate toDate: endDate options: 0];
        days = [components day];
        hour = [components hour];
        minutes = [components minute];
    
        if (days > 0) {
    
            if (days > 1) {
                durationString = [NSString stringWithFormat:@"%d days", days];
            }
            else {
                durationString = [NSString stringWithFormat:@"%d day", days];
            }
            return durationString;
        }
    
        if (hour > 0) {
    
            if (hour > 1) {
                durationString = [NSString stringWithFormat:@"%d hours", hour];
            }
            else {
                durationString = [NSString stringWithFormat:@"%d hour", hour];
            }
            return durationString;
        }
    
        if (minutes > 0) {
    
            if (minutes > 1) {
                durationString = [NSString stringWithFormat:@"%d minutes", minutes];
            }
            else {
                durationString = [NSString stringWithFormat:@"%d minute", minutes];
            }
            return durationString;
        }
    
        return @"";
    }
    

提交回复
热议问题