JWCCompletionTimeEstimator

JWC(Pronounced "Juicy")CompletionTimeEstimator helps you tell your users an estimated time until their file will be completed. Simply pass in your progress variable as a float and JWCCompletionTimeEstimator will pass back a NSTimeInterval object that you can do some math with to determine your completion time.

Example:

-(id)init
{
  self = [super init];
  
  if (self != nil)
  {
    //Setup code
    
    myCompletionTimeEstimator = [[JWCCompletionTimeEstimator alloc] init];
  }
  
  return self;
}

-(void)delegateCallThatGivesUsProgress:(float)progress
{
  NSTimeInterval estimatedCompletionTime = [myCompletionTimeEstimator getAmountOfTimeLeftUntilCompletionWithProgress:progress];
  
  long seconds = lroundf(estimatedCompletionTime); // Modulo (%) operator below needs int or long
    
  int hour = seconds / 3600;
  int mins = (seconds % 3600) / 60;
  int secs = seconds % 60;
    
  NSLog(@"We will be done in %d hours, %d mins, %d seconds!", hour, mins,secs);
}

Tips:

  • Make sure to keep a hold of your JWCCompletionTimeEstimator object as it needs to compare the current time with the initial time that the progress began!
  • If you want to reset your object, just use the -(void)reset; method!

I hope this helps you! Please feel free to help make my code better by adding issues. Also, feel free to contact me. Thanks!