Está en la página 1de 5

Crea una página web con metodología POO para gestionar el alquiler de películas de un videoclub,

como aún no hemos llegado al siguiente tema de conexión con bases de datos, lo que pedimos en
este ejercicio es que al constructor de cada elemento de película se le pase todos los datos (título,
año, director, alquilada sí/no, precio, fecha de devolución) y, además, que se pueda interactuar
con ella y solicitar:

 El nombre de la película.
 El año y director.
 El precio.
 Si está alquilada en estos momentos o no.
 Fecha prevista de devolución.
 El recargo por devolución retrasada, que se calculará a 1,2 euros el día de retraso.

<?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');
    }
 
}
 
?>
<?php
require_once 'pelicula.class.php';
$pelicula = new Pelicula("Matrix", "2002", "Hnos Wasaski", 50, false, date("Y-
m-d", strtotime("2012-01-15")));
 
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();
?>

Crea una página que contenga una clase Hora con atributos para las horas, los minutos y los
segundos de la hora. Incluye, al menos, los siguientes métodos:
Constructor predeterminado con el 00:00:00 como hora por defecto.
leer() : pedirá al usuario las horas, los minutos y los segundos.
valida() : comprobará si la hora es correcta; si no lo es la ajustará. Será un método auxiliar
(privado) que se llamará en el constructor parametrizado y en leer()
print() : mostrará la hora
aSegundos() : devolverá el número de segundos transcurridos desde la medianoche.

<?php
class Hora {
private $second;
private $minute;
private $hour;

public function __construct($h = "00", $m = "00", $s = "00") {


$this->hour = $h;
$this->minute = $m;
$this->second = $s;
}

public function leer($h, $m, $s) {


$this->hour = $h;
$this->minute = $m;
$this->second = $s;
$this->valida();
}
private function valida() {
if($this->hour < 0 || $this->hour > 23) {
$hOk = false;
}
else {
$hOk = true;
}
if($this->minute < 0 || $this->minute > 59) {
$mOk = false;
}
else {
$mOk = true;
}
if($this->second < 0 || $this->second > 59) {
$sOk = false;
}
else {
$sOk = true;
}

//Si da alguna verdadero con el signo de negacion lo vuelvo a verdadero y inicio


todo en 0.

if(!$hOk || !$mOk || !$sOk) {


$this->hour = "00";
$this->minute = "00";
$this->second = "00";
}
}
public function pintar() {
echo 'Hora: '.$this->hour.':'.$this->minute.':'.$this->second;
}
public function aSegundos() {
$hora = "24:00:00";
$separa[0] = explode(":", $hora);
$segundosTranscurridos[0] = ($this->hour*60*60) + $this->minute*60+ $this-
>second;
$segundosTranscurridos[1] = ($separa[0][0]*60*60) + $separa[0][1]*60 +
$separa[0][2];
$segundosTranscurridos = $segundosTranscurridos[1] -
$segundosTranscurridos[0];

echo '<br/>'.$segundosTranscurridos.' Segundos';


}
}
$hora = new Hora();
$hora->leer("07","00","00");
$hora->pintar();
$hora->aSegundos();
?>

También podría gustarte