Classe Viagem
<?php
class Viagem
{
var $origem;
var $destino;
var $data_ida;
var $data_volta;
var $classe;
var $adultos;
var $criancas;
var $preco;
function __construct(
$origem,
$destino,
$data_ida,
$data_volta,
$classe,
$adultos,
$criancas,
$preco
) {
//referênciar os médos de validação na função __construct
if (!$this->dataValida($data_ida)) throw new Exception("Data de ida inválida");
if (!$this->dataValida($data_volta)) throw new Exception("Data de volta inválida");
$this->origem = $origem;
$this->destino = $destino;
$this->data_ida = $data_ida;
$this->data_volta = $data_volta;
$this->classe = $classe;
$this->adultos = $adultos;
$this->criancas = $criancas;
$this->preco = $preco;
}
public function dataValida($data)
{
// Verifica se o campo data está no padrão de 10 caractéres
if (strlen($data) != 10) {
return false;
}
// O método strpos procura a ocorrência de um caracter especial em uma string
if (!strpos($data, "-")) {
return false;
}
// O método explode separa a string em partes
$partes = explode("-", $data);
// Isola o valor de ano, mês e dia
$ano = $partes[0];
$mes = $partes[1];
$dia = $partes[2];
// Valida se o ano está no padrão de 4 caractéres
if (strlen($ano) != 4) {
return false;
}
// O método checkdate verifica se a data informada existe
if (!checkdate($mes, $dia, $ano)) {
return false;
}
$dataAtual = date("Y-m-d");
// O método strtotime converte a data gerada no padrão de string para o padrão de data
if (strtotime($data) < strtotime($dataAtual)) {
return false;
}
}
}