note 42744 deleted from function.mktime by nlopess

From: Date: Thu, 27 May 2004 18:04:15 +0000
Subject: note 42744 deleted from function.mktime by nlopess
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-70209@lists.php.net to get a copy of this message
Note Submitter: Toth, Ighor ---- <?php /* function calculartempo ($hora = false, $minuto = false, $segundo = false, $mes = false, $dia = false, $ano = false){ // Por séculos, os egipitos usaram como calendário (12 * 30 + 5)-dias. // Os gregos começarão a usar os pulos-anos ao redor de 400 d.c. // Ceasar ajustou o calendário romano para começar com Janeiro antes de Março. // Todo o conhecimento foi passado pelos Arabes, que mostraram um erro no pular de anos. // Em 1232, Sacrobosco (Eng.) calculou um erro em 1 dia por 288 anos. // Em 1582, o papa Gregory XIII removeu 10 dias (outubro 15-24) para desfazer parcialmente // um erro, e instituiu a excepção de 400 ao inves de 100 anos, // (observação 400 melhor que 288 anos) para desfazer o resto do erro. // Aproximadamente em 2044, a terra coincidirá outra vez com o trópico do cancer. // Ao redor 4100, o calendário necessitara de algum ajuste outra vez. if ($hora === false) $hora = Date ("G"); if ($minuto === false) $minuto = Date ("i"); if ($segundo === false) $segundo = Date ("s"); if ($mes === false) $mes = Date ("n"); if ($dia === false) $dia = Date ("j"); if ($ano === false) $ano = Date ("Y"); if ($ano >= 1970) return mktime ($hora, $minuto, $segundo, $mes, $dia, $ano); // datas anteriores a 1-1-1970 (Correção do Win32) $m_dias = Array (31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31); if ($ano % 4 == 0 && ($ano % 100 > 0 || $ano % 400 == 0)){ $m_dias[1] = 29; // anos sem pulo poderam ser: 1700, 1800, 1900, 2100, etc. } // ir para tras (-), baseado no $ano $d_ano = 1970 - $ano; $dias = 0 - $d_ano * 365; $dias -= floor ($d_ano / 4); // compensar por anos de pulo $dias += floor (($d_ano - 70) / 100); // compensar por anos que não tem pulo $dias -= floor (($d_ano - 370) / 400); // compensat outra vez por anos gigantes de pulo // ir para frente (+), baseado em $mes e $dia for ($i = 1; $i < $mes; $i++){ $dias += $m_dias [$i - 1]; } $dias += $dia - 1; // ir para frente (+) baseado na $hora, $minuto e $segundo $selo = $dias * 86400; $selo += $hora * 3600; $selo += $minuto * 60; $selo += $segundo; return $selo; } */ ?>

« previous php.notes (#70209) next »