Advertisement
leors

Função para gerar parcelas com dia de vencimento fixo

Sep 15th, 2016
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.50 KB | None | 0 0
  1. <?php
  2. # PHP: Função para gerar parcelas com dia de vencimento fixo (melhorado)
  3. # http://www.linhadecomando.com/php/php-funcao-para-gerar-parcelas-com-dia-de-vencimento-fixo-melhorado
  4. /*
  5. Detalhes:
  6.  
  7. – não é obrigatório passar a data.
  8. – se não passar data alguma a função vai contar que o primeiro vencimento é hoje.
  9. – já tem todas as validações possíveis.
  10. – se a primeira parcela é dia 30/01, a segunda será no começo de março e a terceira parcela será 30/03.
  11. – está preparada para ano bissexto.
  12. */
  13. function calcularParcelas($nParcelas, $dataPrimeiraParcela = null)
  14. {
  15.     if ($dataPrimeiraParcela != null)
  16.     {
  17.         $dataPrimeiraParcela = explode( "/",$dataPrimeiraParcela);
  18.         $dia = $dataPrimeiraParcela[0];
  19.         $mes = $dataPrimeiraParcela[1];
  20.         $ano = $dataPrimeiraParcela[2];
  21.     }
  22.     else
  23.     {
  24.         $dia = date("d");
  25.         $mes = date("m");
  26.         $ano = date("Y");
  27.     }
  28.     for ($x = 0; $x < $nParcelas; $x++)
  29.     {
  30.         echo date("d/m/Y",strtotime("+".$x." month",mktime(0, 0, 0,$mes,$dia,$ano))),"<br/>";
  31.     }
  32. }
  33.  
  34. echo "Calcula as parcela a partir de hoje<br/>";
  35. calcularParcelas(24);
  36. echo "<br/><br/>";
  37. echo "Calcula as parcela a partir de uma data qualquer<br/>";
  38. calcularParcelas(12, "10/08/2016");
  39.  
  40. /*
  41. Resultado:
  42.  
  43. Calcula as parcela a partir de hoje
  44. 28/04/2011
  45. 28/05/2011
  46. 28/06/2011
  47. 28/07/2011
  48. 28/08/2011
  49.  
  50. Calcula as parcela a partir de uma data qualquer
  51. 31/08/2011
  52. 01/10/2011
  53. 31/10/2011
  54. 01/12/2011
  55. 31/12/2011
  56. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement