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)

Source: codewars | Difficulty: EASY
Tags: Fundamentals

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))