X-Git-Url: https://git.llucax.com/mecon/meconlib.git/blobdiff_plain/71acf4950362871b3ad6bc168d08db422edf0509..6449554c9fa98619baf3f157b16cef5caf5f876a:/lib/MECON/Tiempo/Hora.php diff --git a/lib/MECON/Tiempo/Hora.php b/lib/MECON/Tiempo/Hora.php index 46ffc0b..4da62ff 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,58 +34,58 @@ 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)) { - 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"); + } }