public function setDate($year, $month = 1, $day = 1)
	{
		switch ( gettype($year) ) {
			case 'object':
			$year = (array) $year;

			case 'array':
			//	change all keys to lower case
			$arrIn = array_change_key_case($year);

			//	get current values as input can be incomplete
			$year = $this->format('Y');
			$month = $this->format('n');
			$day = $this->format('j');

			foreach ($arrIn as $k => $v) {
				switch ( substr($k, 0, 3) ) {
					case 'yea':
					$year = $v;
					break;

					case 'mon':
					$month = $v;
					break;

					case 'day':
					$day = $v;
					break;
				}
			}
			break;
		}

		parent::setDate((int) $year, (int) $month, (int) $day);

		return $this;
	}