def in_hours(self, when):
		"""
		Find if the given :class:`~datetime.datetime` is in business hours for
		this office.

		:param datetime.datetime when: The time to check

		:returns: True if the given time is in business hours for the office, False otherwise.
		:rtype: bool

		"""

		# convert to local timezone
		when = when.astimezone(self.tz)

		# is it a work day?
		if when.weekday() not in self.hours:
			# not a work day
			return False

		# work out if it is one of the ranges
		for start, end in self.hours[when.weekday()]:
			if start <= when.time() <= end:
				# it's in that range

				# is it a public holiday?  check if it is any range
				for hstart, hend in self.holidays:
					if when >= hstart and when <= hend:
						# it's inside a holiday area.
						return False

				# not in a holiday zone, which means it's business time.
				return True

		# not in any range of hours, and was on a work day
		return False