La mejor manera de encontrar los meses entre dos fechas.

Tengo la necesidad de poder encontrar con precisión los meses entre dos fechas en Python. Tengo una solución que funciona pero no es muy buena (como en elegante) o rápida.

dateRange = [datetime.strptime(dateRanges[0], "%Y-%m-%d"), datetime.strptime(dateRanges[1], "%Y-%m-%d")]
months = [] 

tmpTime = dateRange[0]
oneWeek = timedelta(weeks=1)
tmpTime = tmpTime.replace(day=1)
dateRange[0] = tmpTime
dateRange[1] = dateRange[1].replace(day=1)
lastMonth = tmpTime.month
months.append(tmpTime)
while tmpTime < dateRange[1]:
    if lastMonth != 12:
        while tmpTime.month <= lastMonth:
            tmpTime += oneWeek
        tmpTime = tmpTime.replace(day=1)
        months.append(tmpTime)
        lastMonth = tmpTime.month

    else:
        while tmpTime.month >= lastMonth:
            tmpTime += oneWeek
        tmpTime = tmpTime.replace(day=1)
        months.append(tmpTime)
        lastMonth = tmpTime.month

Entonces, para explicar, lo que estoy haciendo aquí es tomar las dos fechas y convertirlas del formato iso en objetos de fecha y hora de python. Luego paso agregando una semana al objeto de fecha y hora de inicio y verifico si el valor numérico del mes es mayor (a menos que el mes sea diciembre, luego verifica si la fecha es menor), si el valor es mayor, lo agrego a la lista de meses y seguir recorriendo hasta llegar a mi fecha de finalización.

Funciona perfectamente, simplemente no parece una buena manera de hacerlo ...

Respuestas a la pregunta(28)

Su respuesta a la pregunta