public function calculateDates($duration, $unit)
{
switch ($unit) {
case self::UNIT_HOUR:
case self::UNIT_DAY:
case self::UNIT_WEEK:
// use pre-calculated data
$unitDurationInSeconds = array(self::UNIT_HOUR => 3600, self::UNIT_DAY => 86400, self::UNIT_WEEK => 604800);
$base = $unitDurationInSeconds[$unit];
break;
case self::UNIT_MONTH:
$days = date('t');
$base = self::SECONDS_PER_DAY * $days;
break;
case self::UNIT_YEAR:
$date = getdate();
$days = date('z', mktime(0, 0, 0, 12, 31, $date['year'])) + 1;
$base = self::SECONDS_PER_DAY * $days;
}
$dateStarted = time();
$dateFinished = $dateStarted + $base * $duration;
return array(date(iaDb::DATETIME_FORMAT, $dateStarted), date(iaDb::DATETIME_FORMAT, $dateFinished));
}