code: def displayName(date, options=None, format='%b %d, %Y'):
      
      # map from Qt information
      if type(date).__name__ in ('QDate', 'QDateTime', 'QTime'):
          date = date.toPython()
  
      if isinstance(date, datetime.datetime):
          time = ' @ ' + date.strftime('%I:%M%p').strip('0M').lower()
          date = date.date()
      else:
          time = ''
  
      today = datetime.date.today()
      delta = date - today
  
      if delta.days == 0:
          return 'Today' + time
      elif delta.days == -1:
          return 'Yesterday' + time
      elif delta.days == 1:
          return 'Tomorrow' + time
      elif abs(delta.days) < 8:
          # look for different weeks
          if date.isocalendar()[1] != today.isocalendar()[1]:
              qualifier = 'Last ' if delta.days < 0 else 'Next '
          else:
              qualifier = ''
  
          return qualifier + date.strftime('%A') + time
      else:
          return date.strftime(format)
docs: Returns the display name for the inputted date, given the list of options.
      
      :param      date    | <datetime.date>
                  options | <projex.dates.Names>
                  format  | <str>
      
      :return     <str>