<?php
function gerarParcelas( $dataInicial , $intervalos , $valorTotal ) {
$datasParcelas = [ ] ;
$quantidadeParcelas = count ( $intervalos ) ; $valorParcela = $valorTotal / $quantidadeParcelas ;
foreach ( $intervalos as $dias ) {
$dataVencimento = clone $dataInicial ;
$dataVencimento -> modify ( "+{$dias} days" ) ;
$datasParcelas [ ] = [
'data_vencimento' => $dataVencimento ,
'valor_parcela' => $valorParcela
] ;
}
return $datasParcelas ;
}
// Exemplo de uso
$dataInicial = new DateTime( '2024-07-06' ) ;
$intervalos = [ 28 , 42 , 56 ] ;
$valorTotal = 1000.00 ;
$parcelas = gerarParcelas( $dataInicial , $intervalos , $valorTotal ) ;
foreach ( $parcelas as $parcela ) {
echo "Data de Vencimento: " . $parcela [ 'data_vencimento' ] -> format ( 'Y-m-d' ) . PHP_EOL;
echo "Valor da Parcela: R$ " . number_format ( $parcela [ 'valor_parcela' ] , 2 , ',' , '.' ) . PHP_EOL
; echo "-----------------------" . PHP_EOL;
}
PD9waHAKCmZ1bmN0aW9uIGdlcmFyUGFyY2VsYXMoJGRhdGFJbmljaWFsLCAkaW50ZXJ2YWxvcywgJHZhbG9yVG90YWwpIHsKICAgICRkYXRhc1BhcmNlbGFzID0gW107CiAgICAkcXVhbnRpZGFkZVBhcmNlbGFzID0gY291bnQoJGludGVydmFsb3MpOwogICAgJHZhbG9yUGFyY2VsYSA9ICR2YWxvclRvdGFsIC8gJHF1YW50aWRhZGVQYXJjZWxhczsKCiAgICBmb3JlYWNoICgkaW50ZXJ2YWxvcyBhcyAkZGlhcykgewogICAgICAgICRkYXRhVmVuY2ltZW50byA9IGNsb25lICRkYXRhSW5pY2lhbDsKICAgICAgICAkZGF0YVZlbmNpbWVudG8tPm1vZGlmeSgiK3skZGlhc30gZGF5cyIpOwogICAgICAgICRkYXRhc1BhcmNlbGFzW10gPSBbCiAgICAgICAgICAgICdkYXRhX3ZlbmNpbWVudG8nID0+ICRkYXRhVmVuY2ltZW50bywKICAgICAgICAgICAgJ3ZhbG9yX3BhcmNlbGEnID0+ICR2YWxvclBhcmNlbGEKICAgICAgICBdOwogICAgfQoKICAgIHJldHVybiAkZGF0YXNQYXJjZWxhczsKfQoKLy8gRXhlbXBsbyBkZSB1c28KJGRhdGFJbmljaWFsID0gbmV3IERhdGVUaW1lKCcyMDI0LTA3LTA2Jyk7CiRpbnRlcnZhbG9zID0gWzI4LCA0MiwgNTZdOwokdmFsb3JUb3RhbCA9IDEwMDAuMDA7CgokcGFyY2VsYXMgPSBnZXJhclBhcmNlbGFzKCRkYXRhSW5pY2lhbCwgJGludGVydmFsb3MsICR2YWxvclRvdGFsKTsKCmZvcmVhY2ggKCRwYXJjZWxhcyBhcyAkcGFyY2VsYSkgewogICAgZWNobyAiRGF0YSBkZSBWZW5jaW1lbnRvOiAiIC4gJHBhcmNlbGFbJ2RhdGFfdmVuY2ltZW50byddLT5mb3JtYXQoJ1ktbS1kJykgLiBQSFBfRU9MOwogICAgZWNobyAiVmFsb3IgZGEgUGFyY2VsYTogUiQgIiAuIG51bWJlcl9mb3JtYXQoJHBhcmNlbGFbJ3ZhbG9yX3BhcmNlbGEnXSwgMiwgJywnLCAnLicpIC4gUEhQX0VPTDsKICAgIGVjaG8gIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIiAuIFBIUF9FT0w7Cn0K