According to ISO 8601, the first calendar week (1) starts with the week containing the first thursday in january.
Every year contains of 52 (53 for leap years) calendar weeks.

**Your task is** to calculate the calendar week (1-53) from a given date.
For example, the calendar week for the date `2019-01-01` (string) should be 1 (int).

Good luck 👍

See also [ISO week date](https://en.wikipedia.org/wiki/ISO_week_date) and [Week Number](https://en.wikipedia.org/wiki/Week#Week_numbering) on Wikipedia for further information about calendar weeks.

On [whatweekisit.org](http://whatweekisit.org/) you may click through the calender and study calendar weeks in more depth.

*heads-up:* `require(xxx)` has been disabled


Thanks to @ZED.CWT, @Unnamed and @proxya for their feedback.

Difficulty: introductory

Starter code:

def get_calendar_week(date_string):
	

Solutions:
from datetime import datetime


def get_calendar_week(date_string):
    return datetime.strptime(date_string, "%Y-%m-%d").isocalendar()[1]    

from datetime import date

def get_calendar_week(s):
    return date(*map(int, s.split("-"))).isocalendar()[1]

import datetime
get_calendar_week=lambda d:datetime.date(*map(int,d.split('-'))).isocalendar()[1]

from datetime import datetime

def get_calendar_week(date_string):
    return int(datetime.strftime(datetime.strptime(date_string, "%Y-%m-%d"), "%V"))

from datetime import datetime

def get_calendar_week(date):
  return datetime.strptime(date, '%Y-%m-%d').isocalendar()[1]

def isLeap(y):
    return y % 400 == 0 or (y % 100 != 0 and y % 4 == 0)

def numDays(y, m, d):
    return sum([31, 29 if isLeap(y) else 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][:m - 1]) + d

def whatDay_Jan1st(y):  # monday: 1, tuesday: 2, ..., sunday: 7
    y = (y - 1) % 400
    return ((y // 100) * (76 * 1 + 24 * 2) + ((y % 100) // 4) * (1 + 1 + 1 + 2) + (y % 4)) % 7 + 1

def get_calendar_week(date_string):
    y, m, d = map(int, date_string.split("-"))
    if (m == 12 and d in [29, 30, 31]):
        s = whatDay_Jan1st(y + 1)
        if (s == 4 or (s == 3 and d in [30, 31]) or (s == 2 and d == 31)):
            return 1
    s = whatDay_Jan1st(y)
    if (m == 1 and ((s == 5 and d in [1, 2, 3]) or (s == 6 and d in [1, 2]) or (s == 7 and d == 1))):
        y, m, d = y - 1, 12, 28
        s = whatDay_Jan1st(y)

    dateW01_1 = [1, 0, -1, -2, 4, 3, 2][s - 1]
    return (numDays(y, m, d) - dateW01_1) // 7 + 1

from datetime import datetime

def get_calendar_week(date_string):
    d = datetime.strptime(date_string, '%Y-%m-%d')
    return d.isocalendar()[1]

from datetime import datetime

def get_calendar_week(date_string: str):
    return datetime.strptime(date_string, '%Y-%m-%d').isocalendar()[1]

import datetime
def get_calendar_week(date):
    now = datetime.datetime.strptime(date,'%Y-%m-%d')

    return (datetime.datetime.isocalendar(now)[1])


from datetime import date

def get_calendar_week(date_string):
    return date.isocalendar(date(*map(int,date_string.split('-'))))[1]