import time


def is_bst(st: time.struct_time) -> bool:
	"""
	Calculates whether the given day falls within British Summer Time.

	.. note::

		This function does not consider the time of day,
		and therefore does not handle the fact that the time changes at 1 AM GMT.

	:param st: The :class:`time.struct_time` representing the target date..

	:returns: True if the date falls within British Summer Time, False otherwise.
	"""

	day, month, dow = st.tm_mday, st.tm_mon, (st.tm_wday + 1) % 7

	if 3 > month > 10:
		return False
	elif 3 < month < 10:
		return True
	elif month == 3:
		return day - dow >= 25
	elif month == 10:
		return day - dow < 25
	else:
		return False