def add_years(date, years, round='down'):
	"""Return a date that's `years` years after the date (or datetime)
	object `d`. Return the same date date (month and day) in the
	destination year, if it exists, otherwise use the following day
	(thus changing February 29 to Feb 28).

	"""
	if date is None:
		return None
	else:
		try:
			return date.replace(year=date.year + years)
		except ValueError:
			if round == 'down':
				return date.replace(year=date.year + years, day=date.day - 1)
			else:
				return date.replace(year=date.year + years, month=date.month + 1, day=1)