X-Git-Url: https://git.llucax.com/mecon/meconlib.git/blobdiff_plain/71acf4950362871b3ad6bc168d08db422edf0509..187486ab1fccfdc6e9ed17188eb64c5144e1a78a:/lib/MECON/Tiempo/Hora.php?ds=sidebyside diff --git a/lib/MECON/Tiempo/Hora.php b/lib/MECON/Tiempo/Hora.php index 46ffc0b..347f08e 100644 --- a/lib/MECON/Tiempo/Hora.php +++ b/lib/MECON/Tiempo/Hora.php @@ -4,12 +4,12 @@ meconlib ------------------------------------------------------------------------------- This file is part of meconlib. - + meconlib is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. - + meconlib is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. @@ -34,20 +34,22 @@ require_once 'Date/Span.php'; * @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)) { + 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}); + $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}); @@ -55,37 +57,45 @@ class Hora extends Date_Span { case 4: $str = sprintf('0:%02d:%02d:00', $str{0} . $str{1}, $str{2} . $str{3}); break; + } + } + 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})$/', $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; + } } - } 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 { + 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"); + } }