From 5249c5dfa0f478b2372ca19274c192cdf0dc3ced Mon Sep 17 00:00:00 2001 From: "Ramón M. Gómez" Date: Wed, 1 Jul 2020 12:18:03 +0200 Subject: #804: Fix bug when getting day of week number. Removing function `_DiaSemana` from class `Almanaque` and use regular PHP functions. --- .../idiomas/php/cat/clases/Almanaque_cat.php | 31 ++-------------------- .../idiomas/php/eng/clases/Almanaque_eng.php | 31 ++-------------------- .../idiomas/php/esp/clases/Almanaque_esp.php | 31 ++-------------------- 3 files changed, 6 insertions(+), 87 deletions(-) (limited to 'admin') diff --git a/admin/WebConsole/idiomas/php/cat/clases/Almanaque_cat.php b/admin/WebConsole/idiomas/php/cat/clases/Almanaque_cat.php index e92f745c..ae32b33b 100644 --- a/admin/WebConsole/idiomas/php/cat/clases/Almanaque_cat.php +++ b/admin/WebConsole/idiomas/php/cat/clases/Almanaque_cat.php @@ -146,33 +146,6 @@ class Almanaque{ $this->numero_horas[12]=array("11:00",0x0800); } - /* ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ - Esta función devuelve el número del día de la semana: - 0=domingo 1=Lunes, 2=mártes ... 6=sábado - - Parámetro de entrada: - Una cadena con formato de fecha dd/mm/aaaa. - ________________________________________________________________________________________________________*/ - function _DiaSemana($fecha){ - list($dia,$mes,$anno)=explode('[/.-]',$fecha); - $cont=0; - for ($i=1900;$i<$anno;$i++){ - if ($this->bisiesto($i)) $dias_anuales=366; else $dias_anuales=365; - $cont+=$dias_anuales; - } - for ($i=1;$i<$mes;$i++){ - if ($i!=2) - $cont+=$this->dias_meses[$i]; - else{ - if ($this->bisiesto($anno)) - $cont+=29; - else - $cont+=28; - } - } - $cont+=$dia+$this->desplazamiento_dias; - return($cont%7); - } /* ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ Esta función devuelve true si el año pasado como parámetro es bisiesto y false si no lo es @@ -204,8 +177,8 @@ class Almanaque{ ________________________________________________________________________________________________________*/ function MesAnno($mes,$anno){ - $fecha="1/".$mes."/".$anno; - $ds=$this->_DiaSemana($fecha); + $fecha="$anno-$mes-1"; + $ds=date("N", strtotime($fecha)); if ($ds==0) $ds=7; $swbi=0; // Suma para bisiesto diff --git a/admin/WebConsole/idiomas/php/eng/clases/Almanaque_eng.php b/admin/WebConsole/idiomas/php/eng/clases/Almanaque_eng.php index 07ffa9e7..287a88a9 100644 --- a/admin/WebConsole/idiomas/php/eng/clases/Almanaque_eng.php +++ b/admin/WebConsole/idiomas/php/eng/clases/Almanaque_eng.php @@ -178,33 +178,6 @@ class Almanaque{ } - /*------------------------------------------------------------------------------------------- - This function returns day of the week number: - 0=sunday 1=monday, 2=tuesday ... 6=saturday - - Input parameter: - A string with date format dd/mm/yyyy. - ----------------------------------------------------------------------------------------------*/ - function _DiaSemana($fecha){ - list($dia,$mes,$anno)=explode('[/.-]',$fecha); - $cont=0; - for ($i=1900;$i<$anno;$i++){ - if ($this->bisiesto($i)) $dias_anuales=366; else $dias_anuales=365; - $cont+=$dias_anuales; - } - for ($i=1;$i<$mes;$i++){ - if ($i!=2) - $cont+=$this->dias_meses[$i]; - else{ - if ($this->bisiesto($anno)) - $cont+=29; - else - $cont+=28; - } - } - $cont+=$dia+$this->desplazamiento_dias; - return($cont%7); - } /* ------------------------------------------------------------------------------------------- These function returns true if last year was a leap-year or false if it was not @@ -232,8 +205,8 @@ class Almanaque{ and they are class properties. ----------------------------------------------------------------------------------------------*/ function MesAnno($mes,$anno){ - $fecha="1/".$mes."/".$anno; - $ds=$this->_DiaSemana($fecha); + $fecha="$anno-$mes-1"; + $ds=date("N", strtotime($fecha)); if ($ds==0) $ds=7; $swbi=0; // Suma para bisiesto diff --git a/admin/WebConsole/idiomas/php/esp/clases/Almanaque_esp.php b/admin/WebConsole/idiomas/php/esp/clases/Almanaque_esp.php index 78903ea0..73bf2aff 100644 --- a/admin/WebConsole/idiomas/php/esp/clases/Almanaque_esp.php +++ b/admin/WebConsole/idiomas/php/esp/clases/Almanaque_esp.php @@ -146,33 +146,6 @@ class Almanaque{ $this->numero_horas[12]=array("11:00",0x0800); } - /* ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ - Esta función devuelve el número del día de la semana: - 0=domingo 1=Lunes, 2=mártes ... 6=sábado - - Parámetro de entrada: - Una cadena con formato de fecha dd/mm/aaaa. - ________________________________________________________________________________________________________*/ - function _DiaSemana($fecha){ - list($dia,$mes,$anno)=explode('[/.-]',$fecha); - $cont=0; - for ($i=1900;$i<$anno;$i++){ - if ($this->bisiesto($i)) $dias_anuales=366; else $dias_anuales=365; - $cont+=$dias_anuales; - } - for ($i=1;$i<$mes;$i++){ - if ($i!=2) - $cont+=$this->dias_meses[$i]; - else{ - if ($this->bisiesto($anno)) - $cont+=29; - else - $cont+=28; - } - } - $cont+=$dia+$this->desplazamiento_dias; - return($cont%7); - } /* ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ Esta función devuelve true si el año pasado como parámetro es bisiesto y false si no lo es @@ -204,8 +177,8 @@ class Almanaque{ ________________________________________________________________________________________________________*/ function MesAnno($mes,$anno){ - $fecha="1/".$mes."/".$anno; - $ds=$this->_DiaSemana($fecha); + $fecha="$anno-$mes-1"; + $ds=date("N", strtotime($fecha)); if ($ds==0) $ds=7; $swbi=0; // Suma para bisiesto -- cgit v1.2.3-18-g5258