X-Git-Url: https://git.llucax.com/mecon/meconlib.git/blobdiff_plain/cacc1525e7102dfef7964462a50e4ff13f02dcc6..6449554c9fa98619baf3f157b16cef5caf5f876a:/lib/MECON/Tiempo/Hora.php diff --git a/lib/MECON/Tiempo/Hora.php b/lib/MECON/Tiempo/Hora.php index bae7cae..4da62ff 100644 --- a/lib/MECON/Tiempo/Hora.php +++ b/lib/MECON/Tiempo/Hora.php @@ -1,83 +1,92 @@ - | -// +--------------------------------------------------------------------+ -// -// $URL$ -// $Rev$ -// $Date$ -// $Author$ -// + +------------------------------------------------------------------------------- +$Id$ +-----------------------------------------------------------------------------*/ -require_once "Date/Span.php"; +require_once 'Date/Span.php'; /** - * Representa un Intervalo entre 2 horas del mismo dia + * Representa una hora. * * @package HE * @abstract * @version $Rev$ * @author Gonzalo Merayo */ -class Hora extends Date_Span { +class MECON_Tiempo_Hora extends Date_Span { - function set($str) - { - $str = strval($str); - if (preg_match('/^\d+$/', $str)) { - if ($str < 24) { - $str = sprintf('0:%02d:00:00', $str ); - } elseif ($str == 24 or $str == 2400) { - $str = '1:00:00:00'; - } elseif ($str < 2400) { - switch (strlen($str)) { - case 2: - $str = sprintf('0:%02d:%02d:00', $str{0}, $str{1}); - break; - case 3: - $str = sprintf('0:%02d:%02d:00', $str{0}, $str{1} . $str{2}); - break; - case 4: - $str = sprintf('0:%02d:%02d:00', $str{0} . $str{1}, $str{2} . $str{3}); - break; + function set($str) + { + $str = strval($str); + if (preg_match('/^\d+$/', $str)) { + if ($str < 24) { + $str = sprintf('0:%02d:00:00', $str ); + } elseif ($str == 24 or $str == 2400) { + $str = '1:00:00:00'; + } elseif ($str < 2400) { + switch (strlen($str)) { + case 2: + $str = sprintf('0:%02d:%02d:00', $str{0}, $str{1}); + break; + case 3: + $str = sprintf('0:%02d:%02d:00', $str{0}, $str{1} . $str{2}); + break; + case 4: + $str = sprintf('0:%02d:%02d:00', $str{0} . $str{1}, $str{2} . $str{3}); + break; + } + } else { + return false; + } + } elseif (preg_match('/^(\d{0,2})\D(\d{1,2})$/', $str, $m)) { + if ($m[1] < 24 and $m[2] < 60) { + $str = sprintf('0:%02d:%02d:00', $m[1], $m[2]); + } elseif ($m[1] == 24 and $m[2] == 0) { + $str = '1:00:00:00'; + } else { + return false; + } + } elseif (preg_match('/^(\d{0,2})\D(\d{1,2})\D(\d{1,2})$/', $str, $m)) { + if ($m[1] < 24 and $m[2] < 60 and $m[3] < 60) { + $str = sprintf('0:%02d:%02d:%02d', $m[1], $m[2], $m[3]); + } elseif ($m[1] == 24 and $m[2] == 0 and $m[3] == 0) { + $str = '1:00:00:00'; + } else { + return false; } } else { return false; } - } elseif (preg_match('/^(\d{0,2})\D(\d{1,2})$/', $str, $m)) { - if ($m[1] < 24 and $m[2] < 60) { - $str = sprintf('0:%02d:%02d:00', $m[1], $m[2]); - } elseif ($m[1] == 24 and $m[2] == 0) { - $str = '1:00:00:00'; - } else { - return false; - } - } elseif (preg_match('/^(\d{0,2})\D(\d{1,2})\D(\d{1,2})$/', $str, $m)) { - if ($m[1] < 24 and $m[2] < 60 and $m[3] < 60) { - $str = sprintf('0:%02d:%02d:%02d', $m[1], $m[2], $m[3]); - } elseif ($m[1] == 24 and $m[2] == 0 and $m[3] == 0) { - $str = '1:00:00:00'; - } else { - return false; - } - } else { - return false; + $this->setFromString($str, "%D:%H:%M:%S"); + return true; } - $this->setFromString($str, "%D:%H:%M:%S"); - return true; - } - function get() - { - return $this->format("%E:%M"); - } + function get() + { + return $this->format("%E:%M"); + } } -// $Id$ -?> + +?> \ No newline at end of file