IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Afficher les dates mensuelles successives dans un tableau en fonction d'une date de départ et d'une durée


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2008
    Messages
    293
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 293
    Points : 95
    Points
    95
    Par défaut Afficher les dates mensuelles successives dans un tableau en fonction d'une date de départ et d'une durée
    Après récupération du $_post['date'] du formulaire:
    exemple à dater de ce jour soit le 18/11/2011 j'aimerais afficher dans un tableau automatiquement les dates mensuelles en fonction d'une durée t=3mois par exemple
    A savoir:les dates suivantes dans un tableau
    18/11/2011(date de départ)
    18/12/2011
    18/01/2012
    18/02/2012
    Le problème c'est que je ne vois pas comment manipuler la date avec ses mois et année pour utiliser le for conseillé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     for ($i=0;$i<4; $i++)
     { 
       $mois = (($moisCourant-1 + $i) % 12)+1;
        $annee= ($anneeCourante + ((($moisCourant+$i)>12) ? 1 : 0 )); 
     }
    Sincères remerciements pour votre aide
    Claudine

  2. #2
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Hello

    Il faut utiliser strtotime

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $from = $current = time();
    $month_span = 3;
     
    do {
      echo date('d/m/y', $current) . '<br />';
    } while (($current = strtotime('+1 month', $current)) && $month_span--);
    Et voilà...

  3. #3
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 086
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 086
    Points : 8 174
    Points
    8 174
    Billets dans le blog
    17
    Par défaut
    +1 month ou next month (j'aime bien l'expressivité de strtotime( )).
    Ceci dit il va probablement y avoir un effet de bord si la date de départ est par exemple 31/10 ou 31/12.

    Claudine, quelle est la finalité de la chose ?
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Février 2008
    Messages
    293
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 293
    Points : 95
    Points
    95
    Par défaut
    Bonjour Benjamin Delespierre,
    Sincères remerciements pour ces lignes de code et veuillez m'excuser pour ce contre-temps(problèmes de santé).
    Malheureusement ,(c'est ma faute car j'ai parlé de date de ce jour ) la date introduite par le formulaire est quelconque et ces lignes ne fonctionnent que pour la date du jour. Voulez-vous adapter pour la récupération du formulaire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $date=$_POST['date'];
    car si j'indique $date au lieu de date dans l'echo il m'indique le code d'erreur: date indéfinie
    Salutations
    Claudine

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Février 2008
    Messages
    293
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 293
    Points : 95
    Points
    95
    Par défaut
    Bonjour Séb,
    Merci pour votre commentaire éclairé.
    En ce qui concerne la finalité: j'aimerai créer un tableau personnel d'amortissements d'un prêt en vue de récupérer les sommes des intérêts et capitaux remboursés mensuellement et annuellement en vue d'adapter la situation indiciaire de l'année .
    Je veux essayer en PHP mais je doute de mes capacité et de la possibilité de le réaliser avec PHP.Avant de poursuivre , est-ce réalisable par cette méthode?
    remerciements pour vos conseils.
    Claudine

  6. #6
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 086
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 086
    Points : 8 174
    Points
    8 174
    Billets dans le blog
    17
    Par défaut
    Citation Envoyé par Claudine Voir le message
    j'aimerai créer un tableau personnel d'amortissements d'un prêt en vue de récupérer les sommes des intérêts et capitaux remboursés mensuellement et annuellement en vue d'adapter la situation indiciaire de l'année .
    Je veux essayer en PHP mais je doute de mes capacité et de la possibilité de le réaliser avec PHP.Avant de poursuivre , est-ce réalisable par cette méthode?
    Pas de souci du côté de PHP. Donne les données attendues en entrée/sortie et la méthode de calcul si tu veux un peu d'aide ;-)
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  7. #7
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Citation Envoyé par Claudine Voir le message
    Bonjour Benjamin Delespierre,
    Sincères remerciements pour ces lignes de code et veuillez m'excuser pour ce contre-temps(problèmes de santé).
    Malheureusement ,(c'est ma faute car j'ai parlé de date de ce jour ) la date introduite par le formulaire est quelconque et ces lignes ne fonctionnent que pour la date du jour. Voulez-vous adapter pour la récupération du formulaire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $date=$_POST['date'];
    car si j'indique $date au lieu de date dans l'echo il m'indique le code d'erreur: date indéfinie
    Salutations
    Claudine
    Il faut convertir la date saisie en timestamp (entier) toujours avec strtotime. Ou la découper et utiliser mktime si cette date n'est pas reconnue par strtotime.

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Février 2008
    Messages
    293
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 293
    Points : 95
    Points
    95
    Par défaut
    Bonsoir Séb,
    voici mon travail de deux jours avec un formulaire pour introduire les principales caractéristiques d'un emprunt(somme empruntée, taux, durée et date) que je vous soumet:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    	   "http://www.w3.org/TR/html4/loose.dtd">
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">	
    <html>
    <style type="text/css">
    <!--
    .Style1 {font-family: Verdana, Arial, Helvetica, sans-serif}
    .Style2 {font-family: "Times New Roman", Times, serif}
    -->
    </style>
    <head>
     
    <title> FORMULAIRE </title>
     
    </head>
    <body>
     
    <form method="post" action= "Exposantnegatif.php">
    <h1 class="Style1"> <font size="4">Formulaire d'emprunt</font></h1>
    <table width="408" border="1" cellspacing="0" bordercolordark="white" bordercolorlight="black" align="center">
    <tr>
    <td width="153"> <span class="Style1"><font size="3">Montant de l'emprunt </font></span></td>
    <td width="245"><span class="Style2"><font size="3">
      <INPUT type="text" value="" name="Montant" size="10" maxlenght="8"> 
      en €</font></span></td>
    </tr>
    <tr>
    <td width="153">  <font size="3" face="Verdana">Durée de l'emprunt </font></td>
    <td width="245"><font size="3" face="Verdana"><INPUT type="text" value="" name="Duree" size="10" maxlenght="8">en mois</font></td>
    </tr>
    <tr>
    <td width="153"> <font size="3" face="Verdana">Taux d'intérêt </font></td>
                <td width="245">
                    <p align="left"><font size="3" face="Verdana"><INPUT type="text" value="" name="Taux" size="10" maxlenght="8"> % par an</font></td>
        </tr>
     
    <tr>
     
    <tr>
    <td width="153"><font size="3" face="Verdana">Date de l'emprunt</font></td>
    <td width="245"><font size="3" face="Verdana"><INPUT type="text" value="" name="Date" size="3" maxlenght="3"> jj/mm/aaaa</font></td
    ></tr>
     
     
     
     
     
      </table>
     
        <p align="center"><input type="submit" value="Soumettre">
    </p>
    </form>
    </body>
                    </html>
    puis le tableau d'amortissement que je veux remplir après calcul:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
     
    <?php
    //*$duree=$_POST['Duree'];
    $duree=$_POST['Duree'];
    $n=$duree;
    for ($i=1;$i <=$n-1; $i++)
    //echo'Ech'.$i.'<br/>;
    ?>
    <?php
    $date=$_POST['Date'];
    //*Calculs pour déterminer la mensualité à payer.
     
    //*a)Montant du capital emprunté
    $montant=$_POST['Montant'];//Récupération de la  valeur du formulaire
    $c=$montant;
    //$c=3300.90;
    //* b)Taux annuel en %
    $taux=$_POST['Taux'];//Récupération de la valeur du formulaire
     
    $t=$taux;
     
    //*c)Durée du prêt en mois
    $duree=$_POST['Duree'];//Récupération de la valeur du formulaire
     
    $n=$duree;
     
     
    // Calcul de la mensualié à payer(constante
    $tpc=$t/100;
     
    $tm=$tpc/12;
    //$n=36;// la durée en mois
    $num=$c*$tm;
    //echo$num
    //denominateur...............
     
    $yp=1+$tm;
    //echo$yp
    $y=pow($yp,-$n);
    $deno=1-$y;
    $m=$num/$deno;
    //echo round($m, 2);
     
    //* Remboursement en intérêts
    $RembI=$c*$t/1200;
    //$RembI=$RenI;
    ?>
    <?php
    //*Remboursement en capital
    $RembC=$m-$RembI;
    //boucle N°d'échéance
    //$n=$_POST['Duree'];
    //Solde Créance
    $SC=$n*$m
    //**************************************************************************
    //<strong><u>Toutes les formules</u></strong>
    //* Calcul du SoldeCapitalRestantDu:(SCRD)
    //Echéance1: =Capital(c) de départ
    //Echéance2: =SCRD1-Remboursement En Capital2
    //Echéance3: =SCRD2-Remboursement En Capital3 et aisi de suite
     
    //Remboursement en capital
    //RemboursEnCapital(1)=$m-RemboursEnInterets1
    //RemboursEnCapital(2)=$m-RemboursEnInterets2
     
    //remboursement en intérêts
    //RemboursEnIntérêts(1)=$c1*$t/1200
    ////RemboursEnIntérêts(2)=$c2*$t/1200
     
    //Solde créance1= nbre d'échéances($n=36)*Mensualité à payer soit($n*$m)-$m
    //Solde créance2= nbre d'échéances($n=35)*Mensualité à payer soit($n*$m)-$m
    //************************************************************************
    ?>
     
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
     
    <link rel="stylesheet" media="screen" type="text/php" title="formulaireEmprunt" 
    <title> FORMULAIRE </title>
    </head>
    <body>
    <h1> <font size="2" face="Verdana"><b>Plan de remboursement</b></font><font face="Verdana"></font></h1>
     
     
     
     
     
    <table border="1" cellspacing="0" bordercolordark="white" bordercolorlight="black" align="center">
    <tr>
          <td> 
            <p align="center"><font size="1" face="Verdana">N°Echeance <u></u></font></p>
            <td> 
            <p align="center"><font size="1" face="Verdana">DateEcheance <u></u></font></p>
            <td>
            <p align="center"><font size="1" face="Verdana">SoldeCapitalRestantDu<u></u></font></p>
            <td> 
            <p align="center"><font size="1" face="Verdana">SoldeCreance <u></u></font></p>
            <td>
            <p align="center"><font size="1" face="Verdana">RembEnCapital<u></u></font></p>
            <td> 
          <p align="center"><font size="1" face="Verdana">RembEnInterets <u></u></font></p>
            <td>
            <p align="center"><font size="1" face="Verdana">MensualiteAPayer<u></u></font>        <td> 
     
     
    <font size="1" face="Verdana"><u></u></font></tr>
    <tr>
           <td> 
         <p align="center"><font size="1" face="Verdana"><u><?php echo round($i, 2)  ?> </u></font></p>
            </td>
     
            <td> 
         <p align="center"><font size="1" face="Verdana"><u><?php echo $date=$_POST['Date'] ?> </u></font></p>
            </td>
            <td> 
                <p align="center"><font size="1" face="Verdana"><u><?php echo $c ?> </u></font></p>
            </td>
            <td> 
                <p align="center"><font size="1" face="Verdana"><u><?php echo round($SC, 2)?> </u></font></p>
            </td>
            <td> 
                <p align="center"><font size="1" face="Verdana"><u><?php echo round($RembC, 2) ?></u></font></p>
            </td>
            <td> 
                <p align="center"><font size="1" face="Verdana"><u><?php echo round($RembI, 2)?></u></font></p>
            </td>
     
     
              <td> 
                <p align="center"><font size="1" face="Verdana"><u><?php echo round($m, 2) ?></u></font></p>
            </td></tr>
    <font size="1" face="Verdana"><u>
    </u></font>
    </body>
    j'arrive à afficher toutes les données correspondant à la 1ère échéance mais pas la suite car les variables changent en tenant compte des formules....
    Bref,j'ai besoin d'un coup de pouce pour afficher toutes les échéances correspondant à la durée exprimée en mois et adapter les formules au N°d'échéance.Le problème de l'affichage des dates correspondant aux échéances subsiste !
    Sincères remerciements pour votre aide
    Claudine

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Février 2008
    Messages
    293
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 293
    Points : 95
    Points
    95
    Par défaut
    BonjourBenjamin,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $from = $current = time();
    $month_span = 3;
     
    do {
      echo date('d/m/y', $current) . '<br />';
    } while (($current = strtotime('+1 month', $current)) && $month_span--);
    Ce code ne me permet pas de résoudre mon problème car la date n'est pas nécessairement la date du jour et dépend d'une date quelconque introduite dans le formulaire.
    Est_il possible de le résoudre autrement?
    Merci
    Claudine

  10. #10
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Je pensais avoir été clair en disant qu'il fallait convertir la date saisie en timestamp et de l'utiliser en lieu et place de time() (qui renvoie effectivement le timestamp actuel).

    Donc voici ce que ça nous donne avec une date arbitraire qui n'est pas nécessairement la date du jour.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    // Fourni par le formulaire
    $_POST['date'] = '1987-09-23';
     
    $current    = strtotime($_POST['date']);
    $month_span = 3;
     
    do {
      echo date('d/m/y', $current) . '<br />';
    } while (($current = strtotime('+1 month', $current)) && $month_span--);

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Février 2008
    Messages
    293
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 293
    Points : 95
    Points
    95
    Par défaut
    Bonjour Benjamin,
    Un grand merci pour votre explications du code.
    Je connais l'affichage des données d'uneBDD dans un tableau html, mais dans le cas présent: c'est différent.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    // Fourni par le formulaire
    $_POST['date'] = '1987-09-23';
     
    $current    = strtotime($_POST['date']);
    $month_span = 3;
     
    do {
      echo date('d/m/y', $current) . '<br />';
    } while (($current = strtotime('+1 month', $current)) && $month_span--);
    je ne trouve aucune aide ou tutoriel qui me permette d'afficher cette série de date dans la colonne 'Date' d'un tableau html.
    Voulez-vous m'aider(une dernière fois!).
    D'avance, je vous remercie chaleureusement.
    Claudine

  12. #12
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    je ne trouve aucune aide ou tutoriel qui me permette d'afficher cette série de date dans la colonne 'Date' d'un tableau html.
    C'est normal vu qu'un tableau se construit par ligne et non par colonne.

    Le mieux à faire est de l'insérer dans la collection (ou l'array) qui sert à l'affichage du tableau HTML.

    Ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
    <?php
    // Données provenant de MySQL
    $data = array(
      array('nom' => 'foo1', 'prenom' => 'bar1'),
      array('nom' => 'foo2', 'prenom' => 'bar2'),
      array('nom' => 'foo3', 'prenom' => 'bar3'),
      array('nom' => 'foo4', 'prenom' => 'bar4'),
    );
     
    // Données provenant du formulaire
    $_POST['date'] = '1987-09-23';
     
    $current    = strtotime($_POST['date']);
    $month_span = 3;
    $dates = array();
     
    do {
      $dates[] = date('d/m/y', $current) . '<br />';
    } while (($current = strtotime('+1 month', $current)) && $month_span--);
     
    $c_data = count($data);
    for ($i = 0; $i < $c_data; $i++) {
      // Attention, à cette étape il faut être sûr que
      // $data à bien le même nombre d'enrées
      // que $dates sinon WARNING
       $data[$i]['date'] = $date[$i];
    }
    ?>
    <!-- Mise en forme du tableau HTML -->
    <table>
      <thead>
         <tr>
           <th>Nom</th>
           <th>Prenom</th>
           <th>Date</th>
         </tr>
      </thead>
      <tfoot>
      </tfoot>
      <tbody>
      <?php foreach ($data as $r) : ?>
        <tr>
          <td><?=$r['nom']?></td>
          <!-- ou <?php echo $r['nom']?> si l'option short_open_tag est à off (voir phpinfo() -->
          <td><?=$r['prenom']?></td>
          <td><?=$r['date']?></td>
        </tr>
      <?php endforeach ?>
      </tbody>
    </table>

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Février 2008
    Messages
    293
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 293
    Points : 95
    Points
    95
    Par défaut
    Bonsoir Benjamin,
    Merci pour cette réponse rapide.
    J'ai modifié la ligne 27 et ajouté (s) à $date car message d'erreur(undefined variable date on line 27
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      $data[$i]['date'] = $dates[$i];
    Maintenant plus de message d'erreur mais affichage des titres:
    nom prenom date
    et malheureusement rien dans les colonnes.
    Voulez-vous regarder où est situé le petit problème?
    Merci
    Claudine

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Février 2008
    Messages
    293
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 293
    Points : 95
    Points
    95
    Par défaut
    Bonjour Benjamin,
    Mille excuses, erreur de ma part . L'affichage est correct.
    Dans mon projet, ce système pose problème car je dois avoir fixé d'avance autant d'array que la variable $mont_span.Je ne connais pas d'avance la valeur de cette variable.
    Ainsi, si j'ai 60 mensualitées ou plus, ce sera assez fastidieux. Par contre la mensualité est une constante donc identique pour les60 ou plus mensualités.
    Si j'applique le 1er array(array('N°Echeance' => 'Ech1')......
    Bref, je vais essayer de manipuler et étudier ce programme.
    Merci pour votre aide
    Claudine

  15. #15
    Membre régulier
    Profil pro
    Inscrit en
    Février 2008
    Messages
    293
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 293
    Points : 95
    Points
    95
    Par défaut Fonctions pour calculer un tableau d'amortissement en php
    Bonjour à tous,
    j'ai réaliser un début de tableau d'amortissement avec php, mais j'avoue que c'est assez fastidieux et probablement impossible comparé à excel.
    Je l'ai réalisé en tenant compte de 4 mensualités mais si j'ai un prêt de 36 voir 72 mensualités c'est impossible à réaliser!
    Je vous propose mon travail et demande votre avis pour voir, s'il exixte des fonctions particulières pour simplifier le traval:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
     
    <?php
     
    $mensualite=1010.44;
    $t=4;
    $cap1=4000;
    $taux=5/100;
    $REI1=$cap1*$taux/12;
     
     
    $REC1=$mensualite-$REI1;
     
    $SCRD2=$cap1-($mensualite-$REI1);
    $REI2=$SCRD2*$taux/12;
    $REC2=$mensualite-$REI2;
    $REC2=$mensualite-$REI2;
    $SCRD3=$SCRD2-($mensualite-$REI2);
    $REI3=$SCRD3*$taux/12;
    $REC3=$mensualite-$REI3;
    $SCRD4=$SCRD3-($mensualite-$REI3);
    $REI4=$SCRD4*$taux/12;
    $REC4=$mensualite-$REI4;
    $REI5=$SCRD5*$taux/12;
    $REC5=$mensualite-$REI5;
    $SCRE1=$t*$mensualite;
    $SCRE2=$SCRE1-$mensualite;
    $SCRE3=$SCRE2-$mensualite;
    $SCRE4=$SCRE3-$mensualite;
    $SCRE5=$SCRE4-$mensualite;
    $SCRE6=$SCRE5-$mensualite;
     
     
    $data= array(
     
     
      array('N°Echeance' => 'Ech1', 'SoldeCreance' => $SCRE1, 'SCRD' => $cap1,'REC'=>$mensualite-$REI1,'RembEnInterets' => $REI1),
      array('N°Echeance' => 'Ech2', 'SoldeCreance' => $SCRE2, 'SCRD' => $SCRD2,'REC'=>$mensualite-$REI2,'RembEnInterets' => $REI2),
      array('N°Echeance' => 'Ech3', 'SoldeCreance' => $SCRE3, 'SCRD' => $SCRD3,'REC'=>$mensualite-$REI3,'RembEnInterets' => $REI3),
      array('N°Echeance' => 'Ech4', 'SoldeCreance' => $SCRE4, 'SCRD' => $SCRD4
      ,'REC'=>$mensualite-$REI4,'RembEnInterets' => $REI4),
      array('N°Echeance' => 'Ech5', 'SoldeCreance' => $SCRE5, 'SCRD' => $SCRD5,'REC'=>$mensualite-$REI5,'RembEnInterets' => $REI5),
      array('N°Echeance' => 'Ech6', 'SoldeCreance' => $SCRE6, 'SCRD' => $SCRD6,'REC'=>$mensualite-$REI6,'RembEnInterets' => $REI6),
    );
    //Données provenant de calcul préalables
    //Numérotation
    $i=0;
    do
    {
    $num[]=$i+1; 
    //echo $e, "<br/>";
    $i++;
    }
    while($i<=$t);
     
     
    // Données provenant du formulaire
    $_POST['date'] = '2011-11-27';
     
    $current    = strtotime($_POST['date']);
    //$t=4;
    $month_span = $t-1;
    $dates = array();
     
    do {
      $dates[] = date('d/m/y', $current) . '<br />';
    } while (($current = strtotime('+1 month', $current)) && $month_span--);
     
    //Mensualité (voir calcul)
    $mensualite= array();
    $mensualite=1010.44;// par exemple mais voir calcul réel
    for ($i=1; $i <=$t; $i++)
    {
     
    $mens[]=$mensualite; 
     
    }
    $c_data = count($data);
    for ($i = 0; $i < $c_data; $i++) {
     
       $data[$i]['date'] = $dates[$i];
       $data[$i]['$num']= $num[$i];
       $data[$i]['$mens']= $mens[$i];
    }
    ?>
    <!-- Mise en forme du tableau HTML -->
    <table>
      <thead>
         <tr>
           <th>N°Ech</th>
           <th>N°</th>
           <th>Date</th>
    	 	   <th>SoldeCapRestantDû</th>
    		<th>SoldeCreance</th>   
    	   <th>RembEnCap</th>
    	   <th>RembEnInterets</th>
    	   <th>A payer</th>
         </tr>
      </thead>
      <tfoot>
      </tfoot>
      <tbody>
     
      <?php foreach ($data as $r) : ?>
        <tr>
          <td><?php echo $r['N°Echeance']?></td>
     
          <td><?php echo $r['$num']?></td>
          <td><?php echo $r['date']?></td>
     
     
    	  <td><?php echo $r['SCRD']?></td>
    	  <td><?php echo $r['SoldeCreance']?></td>
    	  <td><?php echo  $r['REC']?></td>
    	  <td><?php echo $r['RembEnInterets']?></td>
    	  <td><?php echo $r['$mens']?></td>
        </tr>
      <?php endforeach ?>
      </tbody>
    </table>
    De plus, je n'arrive pas à arrondir les résultats php echo round($,2)pour le rembEnInterets.
    Sincères remerciements pour qui pourra m'aider.
    Claudine

  16. #16
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    j'avoue que c'est assez fastidieux et probablement impossible comparé à excel.
    C'est bien connu, Excel c'est le meilleur logiciel de tous les temps
    Si tu es plus à l'aise avec Excel qu'avec PHP, pourquoi essayer de faire un tableau d’amortissement en PHP ?

    Je l'ai réalisé en tenant compte de 4 mensualités mais si j'ai un prêt de 36 voir 72 mensualités c'est impossible à réaliser!
    Non c'est possible, tu n'y arrives pas c'est tout. Il faudrait peut être revoir l'algorithme mais j'ai complètement oublié mes cours de compta et je serais bien incapable de valider un algo d'amortissement... un petit rappel me serait utile si tu veux que je continue à me pencher sur ton problème.

Discussions similaires

  1. Réponses: 2
    Dernier message: 18/11/2014, 17h03
  2. Réponses: 3
    Dernier message: 18/11/2011, 16h23
  3. [Dates] Afficher les jours du mois dans un formulaire
    Par Jimmy Monkey dans le forum Langage
    Réponses: 7
    Dernier message: 30/12/2007, 11h27
  4. Réponses: 2
    Dernier message: 13/06/2006, 15h45
  5. Réponses: 2
    Dernier message: 23/11/2003, 18h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo