<?php
class Persona
{
public $_nombre = "unNombre";
public $_edad = 0; //se calcula a medida que ingresan
public $_sexo = "M"; //M o F
public $_fecha_nacimiento = "1988-10-9"; //formato mysql sin ceros
public $_fecha_ingreso = "1988-10-9"; //formato mysql sin ceros
#Metodos
//public function __construct($_nom, $_ed)
function Persona($nom = 'pepito', $fecha_nacimiento = "1986-9-1", $sexo = "M", $fecha_ingreso = "2010-5-3" )
{
$this->_nombre = $nom;
$this->_fecha_nacimiento = $fecha_nacimiento;
$this->_sexo = $sexo;
$this->_fecha_ingreso = $fecha_ingreso;
$this->_edad = calcularEdadByFechaMySql($fecha_nacimiento);
}
public function showName()
{
echo $this->_nombre;
}
public function showAll()
{
echo "<pre>";
print_r(get_object_vars($this));
//var_dump(get_object_vars($this));
echo "</pre>";
}
}
class Personas
{
public $_personas = array();
#Metodos
function Personas(/*$_nom, $_ed*/)
{
// $this->$_personas = array();
// $this->edad= $_ed;
}
public function Add($aPersona)
{
//array_push($this->_personas, $aPersona); //este tmb anda
$this->_personas[] = $aPersona;
}
public function Count()
{
return count($this->_personas);
}
public function getSumaDeEdades()
{
$tot = 0;
foreach ($this->_personas as $per)
{
$tot += $per->_edad;
}
return $tot;
}
public function getCantNinios()
{
$tot = 0;
foreach ($this->_personas as $per)
{
if( $per->_sexo == "M" )
{
$tot++;
}
}
return $tot;
}
public function getCantNinias()
{
$tot = 0;
foreach ($this->_personas as $per)
{
if( $per->_sexo == "F" )
{
$tot++;
}
}
return $tot;
}
public function getHDP($edadZarpadaMayorA = 99)
{
$array = array();
foreach ($this->_personas as $per)
{
if( $per->_edad >= $edadZarpadaMayorA )
{
$array[] = $per;
}
}
return $array;
}
public function getWhoCumplenEdad($edadInicial = 0, $edadLimite = 7)
{
$array = array();
foreach ($this->_personas as $per)
{
if( ($edadInicial <= $per->_edad ) && ($per->_edad <= $edadLimite ) )
{
$array[] = $per;
}
}
return $array;
}
public function getCantWhoCumplenEdad($edadInicial = 0, $edadLimite = 7)
{
$tot = 0;
foreach ($this->_personas as $per)
{
if( ($edadInicial <= $per->_edad ) && ($per->_edad <= $edadLimite ) )
{
$tot++;
}
}
return $tot;
}
public function showAll()
{
echo "<hr><pre>";
print_r($this->_personas);
echo "</pre><hr>";
}
}
/***********************************************************/
// echo calcularEdadByFechaMySql("2009-11-03 19:35:21"); //formato mysql
// echo calcularEdadByFechaMySql($user['user_fecha_nacimiento']);
/***********************************************************/
function calcularEdadByFechaMySql($fecha_nac)
{
//Esta funcion toma una fecha de nacimiento
//desde una base de datos mysql
//en formato aaaa/mm/dd y calcula la edad en números enteros
$dia=date("j");
$mes=date("n");
$anno=date("Y");
//descomponer fecha de nacimiento
// $dia_nac=substr($fecha_nac, 8, 2);
// $mes_nac=substr($fecha_nac, 5, 2);
// $anno_nac=substr($fecha_nac, 0, 4);
$datetime = date_create($fecha_nac);
$dia_nac = date_format($datetime, 'd');
$mes_nac = date_format($datetime, 'n');
$anno_nac = date_format($datetime, 'Y');
if($mes_nac>$mes){
$calc_edad= $anno-$anno_nac-1;
}else{
if($mes==$mes_nac AND $dia_nac>$dia){
$calc_edad= $anno-$anno_nac-1;
}else{
$calc_edad= $anno-$anno_nac;
}
}
return $calc_edad;
}
?>
jueves, 20 de mayo de 2010
PHP Class Persona y Personas 2 (edad)
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario