def __sub__(self, other):
if isinstance(other, BusinessDate):<EOL><INDENT>y, m, d = self.diff(other)<EOL>return BusinessPeriod(years=y, months=m, days=d)<EOL><DEDENT>elif isinstance(other, BusinessPeriod):<EOL><INDENT>return self.add_period(-<NUM_LIT:1> * other)<EOL><DEDENT>elif BusinessDate.is_businessdate(other):<EOL><INDENT>return self - BusinessDate(other)<EOL><DEDENT>elif BusinessPeriod.is_businessperiod(other):<EOL><INDENT>return self - BusinessPeriod(other)<EOL><DEDENT>else:<EOL><INDENT>raise TypeError('<STR_LIT>' % type(other))<EOL><DEDENT>
subtraction of BusinessDate.

:param object other: can be other BusinessDate, BusinessPeriod or any thing that might be casted to those.