tem uma funcao que peguei aqui no forum para calcular quantos meses tem entre duas datas. veja um exemplo abaixo:
<?
$data1 = strtotime(20060828);
$data2 = strtotime(20080414);
$maior = max($data1, $data2);
$menor = min($data1, $data2);
$seg = $maior - $menor;
$dias = (($seg /60) /60) /24;
echo $dias . "<P>";
$meses = $dias / 30;
echo $meses;
?>
O numero de meses que esta funcao retorna é 19.833333333333
Mas creio que deveria retornar 19,5624
A diferenca é pequena, mas gera uma dúvdia. Se fizer este calculo na ponta do lapis temos o seguinte:
Do dia 28082006 a 31-08-2006 temos 4 dias. então para saber quantos meses proporcionais tem dentro destes 4 dias, basta dividir os 4 dias do mes de agosto por 31, então temos :0.1290322
Do dia 1 de setembro de 2006 até 31-03-2008 temos: 19 meses
E do dia 1 ao dia 14 de abril de 2008 temos 13 dias. então dividimos 13 por 30 dias do mes de abril temos: 0.433333
Agora é só somar tudo:
0.1290322 + 19 + 0.433333 = 19.5624
então resolvi isolar os resultados, e peguei e coloquei na funcao para calcular os 4 dias de 28082006 a 31-08-2006. A funcao retorna 3 dias. Entendo que deveria retornar 4 dias.
Depois um outro detalhe que noto nesta formula, é que para calcular os meses é dividido por 30 dias, é um numero generico, pois tem mes que tem 30, 31, 28 ou 29 dias...
Pergunta
Halfar
tem uma funcao que peguei aqui no forum para calcular quantos meses tem entre duas datas. veja um exemplo abaixo:
O numero de meses que esta funcao retorna é 19.833333333333
Mas creio que deveria retornar 19,5624
A diferenca é pequena, mas gera uma dúvdia. Se fizer este calculo na ponta do lapis temos o seguinte:
Do dia 28082006 a 31-08-2006 temos 4 dias. então para saber quantos meses proporcionais tem dentro destes 4 dias, basta dividir os 4 dias do mes de agosto por 31, então temos :0.1290322
Do dia 1 de setembro de 2006 até 31-03-2008 temos: 19 meses
E do dia 1 ao dia 14 de abril de 2008 temos 13 dias. então dividimos 13 por 30 dias do mes de abril temos: 0.433333
Agora é só somar tudo:
0.1290322 + 19 + 0.433333 = 19.5624
então resolvi isolar os resultados, e peguei e coloquei na funcao para calcular os 4 dias de 28082006 a 31-08-2006. A funcao retorna 3 dias. Entendo que deveria retornar 4 dias.
Depois um outro detalhe que noto nesta formula, é que para calcular os meses é dividido por 30 dias, é um numero generico, pois tem mes que tem 30, 31, 28 ou 29 dias...
Acho que esta formula ai não é muito certa não...
concordam comigo?
Link para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.