code: def timedelta(self, time_input1, time_input2):
          
          time_input1 = self.any_to_datetime(time_input1)
          time_input2 = self.any_to_datetime(time_input2)
  
          diff = time_input1 - time_input2  # timedelta
          delta = relativedelta(time_input1, time_input2)  # relativedelta
  
          # totals
          total_months = (delta.years * 12) + delta.months
          total_weeks = (delta.years * 52) + (total_months * 4) + delta.weeks
          total_days = diff.days  # handles leap days
          total_hours = (total_days * 24) + delta.hours
          total_minutes = (total_hours * 60) + delta.minutes
          total_seconds = (total_minutes * 60) + delta.seconds
          total_microseconds = (total_seconds * 1000) + delta.microseconds
          return {
              'datetime_1': time_input1.isoformat(),
              'datetime_2': time_input2.isoformat(),
              'years': delta.years,
              'months': delta.months,
              'weeks': delta.weeks,
              'days': delta.days,
              'hours': delta.hours,
              'minutes': delta.minutes,
              'seconds': delta.seconds,
              'microseconds': delta.microseconds,
              'total_months': total_months,
              'total_weeks': total_weeks,
              'total_days': total_days,
              'total_hours': total_hours,
              'total_minutes': total_minutes,
              'total_seconds': total_seconds,
              'total_microseconds': total_microseconds,
          }
docs: Calculates time delta between two time expressions.
  
          Args:
              time_input1 (string): The time input string (see formats above).
              time_input2 (string): The time input string (see formats above).
  
          Returns:
              (dict): Dict with delta values.