# Example: finding and counting leap years
# JMR 2019

def isLeapYear(year):
    return year % 4 == 0 and year % 100 != 0 or year % 400 == 0


def printLeapYears(year1, year2):
    """Print all leap years in range [year1, year2[."""
    for year in listLeapYears(year1, year2):
        print(year)


def numLeapYears(year1, year2):
    """Return the number of leap years in range [year1, year2[."""
    return len(listLeapYears(year1, year2))


def listLeapYears(year1, year2):
    """Return a list of leap years in range [year1, year2[."""
    # (We'll get back to lists later in the course.)
    lst = []
    for year in range(year1, year2):
        if isLeapYear(year):
            lst.append(year)

    return lst


# MAIN PROGRAM:
def main():
    printLeapYears(1870, 1921)

    x = numLeapYears(1679, 2079)
    print("In [1679, 2079[ there are", x, "leap years")

    print(listLeapYears(1970, 2002))


if __name__ == "__main__":
    main()