créer un échéancier

Mammouth du PHP | 2278 Messages

11 oct. 2012, 09:43

Pour qu'une fonction fasse son boulot de fonction, il faut qu'elle renvoie un résultat:
<?PHP
function surface_cercle($rayon)
{
$surface  = 3.14*($rayon*$rayon);
return $surface;
}
//$rayon = $_POST['rayon'];
$rayon = 2;

$message = "La surface d'un cercle de rayon $rayon est". surface_cercle($rayon);
//ou si on a besoin plusieurs fois du même résultat
$surface = surface_cercle($rayon);

print "$message";
?>
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

ViPHP
ViPHP | 2577 Messages

11 oct. 2012, 09:45

oops, j'ai oublié le return $retour;

Mammouth du PHP | 702 Messages

11 oct. 2012, 10:09

Bonjour, malheureusement je ne peux pas utiliser le code comme ça,

pour vérifier les dates j'ai un javascript qui s'en charge onload.

En revanche j'ai essayé ainsi:
$date =date("d-m-Y", strtotime($debut).strtotime(periode($pay_periodicity, $i2)));      
et pour la fonction:
function periode($var, $i2)
	{
		if($var=='52')
		{
			return '+ '.$i2.' week';
		}
		if($var=='26')
		{
			return '+ ('.$i2.'+1) week';
		}
		if($var=='12')
		{
			return '+ '.$i2.' month';
		}
		if($var=='6')
		{
			return '+ ('.$i2.'+1) month';
		}
		if($var=='2')
		{
			return '+ ('.$i2.'+6) month';
		}
		if($var=='1')
		{
			return '+ ('.$i2.'+12) month';
		}
		
		
	}


mais ça me renvoi partout 01/01/1970

Mammouth du PHP | 702 Messages

11 oct. 2012, 10:50

en fait le problème intervient ici

return "+ (".$i2."+1) week";

d'après ce que j'ai pu voir le nombre n'est pas pris en compte car il affiche la variable +1 sans faire le calcul. Je ne sais pas trop comment concaténer le nombre pour que le calcul soit exécuté.

Mammouth du PHP | 702 Messages

11 oct. 2012, 10:57

bon finalement j'ai rectifié de la sorte:
function periode($var, $i2)
	{
		if($var=='52')
		{
			return "+ ".$i2." week";
		}
		if($var=='26')
		{
			$i3=$i2+1;
			return "+ ".$i3." week";
		}
		if($var=='12')
		{
			return "+".$i2." month";
		}
		if($var=='6')
		{
			$i3=$i2+1;
			return "+ ".$i3." month";
		}
		if($var=='2')
		{
			$i3= $i2+6;
			return "+ ".$i3." month";
		}
		if($var=='1')
		{
			$i3 = $i2 + 12;
			return "+ ".$i3." month";
		}
		
		
	}
Merci à vous deux pour l'aide précieuse.

Mammouth du PHP | 702 Messages

11 oct. 2012, 17:08

Bon pour les dates c'est résolu,

maintenant j'ai un dernier soucis, en fait pour le calcul des intérêts c'est également bon par périodicité quelle qu'on choisi j'ai utilisé une formule analytique du type:

Cn = Co(1+nt)

Si cela vous intéresse je pourrais vous donner le script complet, cela peut toujours servir.

Donc le dernier point qui me pose soucis, car je propose deux option, ou l'on choisit la durée, (le nombre d'échéance) ou le montant de l'échéance, si l'on choisi le nombre d'échéance, il n'y a pas de problème car personne ne dira jamais je veux payer en 13.75 fois par exemple.

Mais si on choisi le montant par exemple 500 € par mois et que le montant à rembourser est de 1600 alors il va faire 3 échéances et dans restant du il va mettre les 100 € .

Ce que je voudrais c'est proposer une case à cocher avec l'option tronquer la dernière échéance et si l'on ne la tronque pas alors la dernière échéance ferait 600 € si on la tronque alors on aurait 500 € et une dernière échéance de 100 €.

Le soucis c'est qu'à partir de ce moment je suis un peu perdu, j'ai juste réussi a aller jusqu'au dernier montant restant à payer avec un solde restant du en positif.

Voici le code que j'ai fais grâce à votre aide:

http://www.phpfiddle.org/main/code/hen-vp7

Par avance merci pour votre aide.

Mammouth du PHP | 2278 Messages

11 oct. 2012, 17:46

Joli mais ligne 74 ce serait pas plutôt :
$reste = $montant_du; ?
Pour le coup de la dernière échéance, je ferais le calcul habituel en me fixant un seuil:
$seuil = $montant_echeance / diviseur qui pourrait dépendre du nombre de mensualités ; // par exemple
et si la derniere échéance est inférieure ou égale au seuil, je mets uune case à cocher : joindre les deux dernières échéances // répartir surr toutes les échéances/ ne rien faire; et je recalcule si besoin;mais je n'ai pas réfléchi au comment faire à part pour la répartitin
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD