code: def future(self,in_days=None,in_hours=None,in_minutes=None,in_seconds=None):
          
          future = None
  
          # Initialize variables to 0
          dd, hh, mm, ss = [0 for i in range(4)]
          if (in_days != None):
              dd = dd + in_days
          if (in_hours != None):
              hh = hh + in_hours
          if (in_minutes != None):
              mm = mm + in_minutes
          if (in_seconds != None):
              ss = ss + in_seconds
  
          # Set the hours, minutes and seconds from now (minus the days)
          dnow = datetime.datetime.utcnow()  # Now
          d = dnow + \
              datetime.timedelta(hours=hh, minutes=mm, seconds = ss)
          # Time from midnight
          for_total_seconds = d - \
              d.replace(hour=0, minute=0, second=0, microsecond=0)
  
          # Convert into minutes since midnight
          try:
              msm = for_total_seconds.total_seconds()/60.
          except:
              # For versions before 2.7
              msm = self.timedelta_total_seconds(for_total_seconds)/60.
  
          if (dd<len(self.days)):
              for timestep in self.days[dd].timesteps:
                  if timestep.name >= msm:
                      future = timestep
                      return future
          else:
              print('ERROR: requested date is outside the forecast range selected,' + str(len(self.days)))
              return False
docs: Function to return a future timestep