


import argparse
import datetime
def 				UpperCamelCase__					(  SCREAMING_SNAKE_CASE__						):
	__lowerCamelCase		:							Optional[int]		 =						{
	    """0""": """Sunday""",
	    """1""": """Monday""",
	    """2""": """Tuesday""",
	    """3""": """Wednesday""",
	    """4""": """Thursday""",
	    """5""": """Friday""",
	    """6""": """Saturday""",
	}

	__lowerCamelCase		:							Any		 =						{0: 1, 1: 2, 2: 3, 3: 4, 4: 5, 5: 6, 6: 0}

	# Validate
	if not 0 < len(lowercase__						) < 11:
		raise ValueError('Must be 10 characters long'						)

	# Get month
	__lowerCamelCase		:							int		 =						int(date_input[0] + date_input[1]						)
	# Validate
	if not 0 < m < 13:
		raise ValueError('Month must be between 1 - 12'						)

	__lowerCamelCase		:							str		 =						date_input[2]
	# Validate
	if sep_a not in ["-", "/"]:
		raise ValueError('Date separator must be \'-\' or \'/\''						)

	# Get day
	__lowerCamelCase		:							int		 =						int(date_input[3] + date_input[4]						)
	# Validate
	if not 0 < d < 32:
		raise ValueError('Date must be between 1 - 31'						)

	# Get second separator
	__lowerCamelCase		:							str		 =						date_input[5]
	# Validate
	if sep_a not in ["-", "/"]:
		raise ValueError('Date separator must be \'-\' or \'/\''						)

	# Get year
	__lowerCamelCase		:							int		 =						int(date_input[6] + date_input[7] + date_input[8] + date_input[9]						)
	# Arbitrary year range
	if not 45 < y < 8_500:
		raise ValueError(
		    'Year out of range. There has to be some sort of limit...right?'						)

	# Get datetime obj for validation
	__lowerCamelCase		:							Dict		 =						datetime.date(int(lowercase__						)      ,	int(lowercase__						)      ,	int(lowercase__						)						)

	# Start math
	if m <= 2:
		__lowerCamelCase		:							Union[str, Any]		 =						y - 1
		__lowerCamelCase		:							List[str]		 =						m + 12
	# maths var
	__lowerCamelCase		:							int		 =						int(str(lowercase__						)[:2]						)
	__lowerCamelCase		:							int		 =						int(str(lowercase__						)[2:]						)
	__lowerCamelCase		:							int		 =						int(2.6 * m - 5.39						)
	__lowerCamelCase		:							int		 =						int(c / 4						)
	__lowerCamelCase		:							int		 =						int(k / 4						)
	__lowerCamelCase		:							int		 =						int(d + k						)
	__lowerCamelCase		:							int		 =						int(t + u + v + x						)
	__lowerCamelCase		:							int		 =						int(z - (2 * c)						)
	__lowerCamelCase		:							int		 =						round(w % 7						)
	# End math

	# Validate math
	if f != convert_datetime_days[dt_ck.weekday()]:
		raise AssertionError('The date was evaluated incorrectly. Contact developer.'						)

	# Response
	__lowerCamelCase		:							str		 =						f'Your date {date_input}, is a {days[str(lowercase__						)]}!'
	return response


if __name__ == "__main__":
							import doctest

							doctest.testmod()
							lowercase_	   =     argparse.ArgumentParser(
							    description=(
							        'Find out what day of the week nearly any date is or was. Enter '
							        'date as a string in the mm-dd-yyyy or mm/dd/yyyy format'
							    )
							)
							parser.add_argument(
							    'date_input', type=str, help='Date as a string (mm-dd-yyyy or mm/dd/yyyy)'
							)
							lowercase_	   =     parser.parse_args()
							zeller(args.date_input)





def 				UpperCamelCase__					(  SCREAMING_SNAKE_CASE__      ,	SCREAMING_SNAKE_CASE__						):
 __lowerCamelCase		:							Union[str, Any]		 =						len(SCREAMING_SNAKE_CASE__						)
 __lowerCamelCase		:							Any		 =						[[False] * (required_sum + 1) for _ in range(arr_len + 1						)]

 # for each arr value, a sum of zero(0) can be formed by not taking any element
 # hence True/1
 for i in range(arr_len + 1						):
  __lowerCamelCase		:							Dict		 =						True

 # sum is not zero and set is empty then false
 for i in range(1      ,	required_sum + 1						):
  __lowerCamelCase		:							Union[str, Any]		 =						False

 for i in range(1      ,	arr_len + 1						):
  for j in range(1      ,	required_sum + 1						):
   if arr[i - 1] > j:
    __lowerCamelCase		:							Tuple		 =						subset[i - 1][j]
   if arr[i - 1] <= j:
    __lowerCamelCase		:							List[Any]		 =						subset[i - 1][j] or subset[i - 1][j - arr[i - 1]]

 return subset[arr_len][required_sum]


if __name__ == "__main__":
       import doctest

       doctest.testmod()

