Me olvide lo del recargo aca te dejo la clase y el php de la instancia modificados. Fijate si te sirve:
Código PHP:
Ver original<?php
class Pelicula
{
var $nombre;
var $ano;
var $director;
var $precio;
var $alquilada;
var $fechaDevolucion;
var $recargo;
function __construct($nombre, $ano, $director, $precio, $alquilada, $fechaDevolucion)
{
$this->setNombre($nombre);
$this->setAno($ano);
$this->setDirector($director);
$this->setPrecio($precio);
$this->setAlquilada($alquilada);
$this->setFechaDevolucion($fechaDevolucion);
$this->setRecargo($this->calcularRecargo());
}
public function getNombre()
{
return $this->nombre;
}
public function setNombre($nombre)
{
$this->nombre = $nombre;
}
public function getAno()
{
return $this->ano;
}
public function setAno($ano)
{
$this->ano = $ano;
}
public function getDirector()
{
return $this->director;
}
public function setDirector($director)
{
$this->director = $director;
}
public function getPrecio()
{
return $this->precio;
}
public function setPrecio($precio)
{
$this->precio = $precio;
}
public function getAlquilada()
{
return $this->alquilada;
}
public function setAlquilada($alquilada)
{
$this->alquilada = $alquilada;
}
public function getFechaDevolucion()
{
return $this->fechaDevolucion;
}
public function setFechaDevolucion($fecha_devolucion)
{
$this->fechaDevolucion = $fecha_devolucion;
}
public function getRecargo()
{
return $this->recargo;
}
public function setRecargo($recargo)
{
$this->recargo = $recargo;
}
private function calcularRecargo()
{
$datetime1 = new DateTime();
$datetime2 = new DateTime($this->getFechaDevolucion());
$interval = $datetime1->diff($datetime2);
return $this->getPrecio() * $interval->format('%a');
}
}
?>
Código PHP:
Ver original<?php
require_once 'pelicula.class.php';
$pelicula = new Pelicula
("Matrix", "2002", "Hnos Wasaski", 50, false, date("Y-m-d", strtotime("2011-12-17")));
echo $pelicula->getNombre() . "<br/>";
echo $pelicula->getAno() . "<br/>";
echo $pelicula->getDirector() . "<br/>";
echo $pelicula->getPrecio() . "<br/>";
echo ($pelicula->getAlquilada() ? 'SI' : 'NO'). "<br/>";
echo $pelicula->getFechaDevolucion() . "<br />";
echo $pelicula->getRecargo();
?>
Anda jugando con la fecha de devolucion para ver lo del recargo, si no es exactamente lo que buscas, pensa un poquito la logica y sale seguro ;)