def METHOD_NAME(self, bufr, date_min=None, date_max=None):
    """Extract the minimum and maximum dates from a single bufr message."""
    ec.codes_set(bufr, 'unpack', 1)
    size = ec.codes_get(bufr, 'numberOfSubsets')
    years = np.resize(ec.codes_get_array(bufr, 'year'), size)
    months = np.resize(ec.codes_get_array(bufr, 'month'), size)
    days = np.resize(ec.codes_get_array(bufr, 'day'), size)
    hours = np.resize(ec.codes_get_array(bufr, 'hour'), size)
    minutes = np.resize(ec.codes_get_array(bufr, 'minute'), size)
    seconds = np.resize(ec.codes_get_array(bufr, 'second'), size)
    for year, month, day, hour, minute, second in zip(years, months, days, hours, minutes, seconds):
        time_stamp = datetime(year, month, day, hour, minute, second)
        date_min = time_stamp if not date_min else min(date_min, time_stamp)
        date_max = time_stamp if not date_max else max(date_max, time_stamp)
    return date_min, date_max