docs: def solar_noon_utc(self, date, longitude):
          """Calculate solar noon time in the UTC timezone.
  
          :param date:       Date to calculate for.
          :type date:        :class:`datetime.date`
          :param longitude:  Longitude - Eastern longitudes should be positive
          :type longitude:   float
  
          :return: The UTC date and time at which noon occurs.
          :rtype: :class:`~datetime.datetime`
          """
  
          jc = self._jday_to_jcentury(self._julianday(date))
          eqtime = self._eq_of_time(jc)
          timeUTC = (720.0 - (4 * longitude) - eqtime) / 60.0
  
          hour = int(timeUTC)
          minute = int((timeUTC - hour) * 60)
          second = int((((timeUTC - hour) * 60) - minute) * 60)
  
          if second > 59:
              second -= 60
              minute += 1
          elif second < 0:
              second += 60
              minute -= 1
  
          if minute > 59:
              minute -= 60
              hour += 1
          elif minute < 0:
              minute += 60
              hour -= 1
  
          if hour > 23:
              hour -= 24
              date += datetime.timedelta(days=1)
          elif hour < 0:
              hour += 24
              date -= datetime.timedelta(days=1)
  
          noon = datetime.datetime(date.year, date.month, date.day, hour, minute, second)
          noon = pytz.UTC.localize(noon)  # pylint: disable=E1120
  
          return noon