If the first day of the month is a Friday, it is likely that the month will have an `Extended Weekend`. That is, it could have five Fridays, five Saturdays and five Sundays. 

In this Kata, you will be given a start year and an end year. Your task will be to find months that have extended weekends and return:
```
- The first and last month in the range that has an extended weekend
- The number of months that have extended weekends in the range, inclusive of start year and end year.
```

For example:
```python
solve(2016,2020) = ("Jan","May",5). #The months are: Jan 2016, Jul 2016, Dec 2017, Mar 2019, May 2020
```

More examples in test cases. Good luck!

If you found this Kata easy, please try [myjinxin2015](https://www.codewars.com/users/myjinxin2015) challenge version [here](https://www.codewars.com/kata/extended-weekends-challenge-edition)

Difficulty: introductory

Starter code:

def solve(a,b):
	

Solutions:
from calendar import month_abbr
from datetime import datetime 
def solve(a,b):
  res = [month_abbr[month]
      for year in range(a, b+1) 
      for month in [1,3,5,7,8,10,12] 
      if datetime(year, month, 1).weekday() == 4]
  return (res[0],res[-1], len(res))

from datetime import date

def solve(a, b):
    first = None
    count = 0
    for year in range(a, b + 1):
        for month in (1, 3, 5, 7, 8, 10, 12):
            d = date(year, month, 1)
            if d.weekday() == 4:
                last = d.strftime("%b")
                if first is None:
                    first = last
                count += 1
    return (first, last, count)


import calendar

DICT = {
    1: "Jan",
    2: "Feb",
    3: "Mar",
    4: "Apr",
    5: "May",
    6: "Jun",
    7: "Jul",
    8: "Aug",
    9: "Sep",
    10: "Oct",
    11: "Nov",
    12: "Dec"
}


def solve(a, b):
    extended_weekends_list = []
    for year in range(a, b + 1):
        for month in range(1, 13):
            if calendar.monthrange(year, month) == (4, 31):
                extended_weekends_list.append([year, month])

    result = (DICT[extended_weekends_list[0][1]], DICT[extended_weekends_list[-1][1]], len(extended_weekends_list))
    return result


from datetime import *

def solve(a,b):
    ans = []
    for i in range(a, b+1):
        for j in (1, 3, 5, 7, 8, 10, 12):
            start = date(i, j, 1)
            if start.strftime("%a") == "Fri":
                ans.append(start.strftime("%b"))
    return (ans[0], ans[-1], len(ans))

from calendar import FRIDAY
from datetime import datetime


def solve(a, b):
    ds = (datetime(year, month, 1) for year in range(a, b+1) for month in [1, 3, 5, 7, 8, 10, 12])
    ds = [d for d in ds if d.weekday() == FRIDAY]
    return format(ds[0], '%b'), format(ds[-1], '%b'), len(ds)


import calendar as c
def solve(a, b):
    weeks = [j for i in range(a, b+1) for j in [1,3,5,7,8,10,12] if c.monthrange(i, j) == (4, 31)]
    return (c.month_name[weeks[0]][:3], c.month_name[weeks[-1]][:3], len(weeks))

from datetime import date

MONTHS_31 = (1,3,5,7,8,10,12)

def solve(a,b):
    cnt, first, last = 0, None, None
    for y in range(a,b+1):
        for m in MONTHS_31:
            d = date(y,m,1)
            if d.weekday()==4:
                cnt, first, last = cnt+1, first or d, d
    return first.strftime('%b'), last.strftime('%b'), cnt

from datetime import date
from calendar import month_name

def solve(a,b):
    m,c,res,s = [1,3,5,7,8,10,12],0 , [], '',
    for i in range(a,b+1):
        for j in m:
            if date(i,j,1).weekday() == 4:
                res.append(j); c+=1; s = ''
    return (month_name[res[0]][:3],month_name[res[-1]][:3],c)

from calendar import month_abbr as abr
from datetime import *

def solve(a,b):
    ans = [abr[m] for y in range(a,b+1) for m in (1,3,5,7,8,10,12) if date(y, m, 1).weekday() == 4]
    return (ans[0], ans[-1], len(ans))

from datetime import date

def solve(a, b):
    r = []
    for y in range(a, b + 1):
        for m in 1, 3, 5, 7, 8, 10, 12:
            d = date(y, m, 1)
            if d.weekday() == 4:
                r.append(d.strftime('%b'))
    return r[0], r[-1], len(r)