I have this method returning a string. But the seconds value is always zero. What am I doing wrong?
-(NSString*)secondsBetweenDate:(NSDate*)startDate andDate:(NSDate*)endDate {
NSCalendar *calendar = [NSCalendar currentCalendar];
unsigned int unitFlags = NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond;
NSDateComponents *difference = [calendar components:unitFlags fromDate:startDate toDate:endDate options:0];
long hour = [difference hour];
long min = [difference minute];
long sec = [difference second];
NSLog(@"Hour: %ld Min: %ld Sec: %ld", hour, min, sec);
return [NSString stringWithFormat:@"%02ld:%02ld:%02ld", hour, min, sec];
}
Why don't you use the default NSDate difference calculations? Returns an NSTimeInterval which is in seconds:
Operation is: