Fonction pour calculer un chiffre en tarologie

Répondre
Amery
le 21/03/2007 à 11:10
Amery
Bonjour,

j'ai essaie de créer une fonction qui calcule le nombre clé pour un taroscope. Pour trouver le chiffre clé, il suffit d'additioner tous les chiffres qui composent un nombre généré à partir d'une date. Exemple, si on prend la date d'aujourdhui: 21.03.2007, on trouve le chiffre comme suit:
21+3+2007 = 2031 = 2+0+3+1 = 6

ou encore

31.12.2006 = 31+12+2006 = 2049 = 2+0+4+9= 15 = 1+5 = 6

J'ai créé la fonction suivante,

function calcul_taro($input)
{
$chiffres = array();
while(strlen($input)>0)
{
$chiffres[] = $input{0};
$input = substr($input, 1);
}
$total = array_sum($chiffres);
return $total;
}


Mais elle ne marche pas exactement. Si le nombre est 2049, elle additionne seulement 0+4+9, sans prendre en compte le 2.

Une solution?

Amery
LA GLOBULE
le 21/03/2007 à 13:15
LA GLOBULE
Tu peux faire ainsi :

<?php
function decompose_date($date) {
$temp = explode('.', $date);
$retour = 0;
foreach ($temp AS $chiffre) {
if (is_numeric($chiffre)) $retour = $retour + $chiffre;
}

return $retour;
}

function calcul_taro($nombre) {
$nombre = ''.$nombre;

if (strlen($nombre) > 1) {
$string = 0;
for ($i=0; $i<strlen($nombre); $i++) {
$string = $string + $nombre{$i};
}
$nombre = calcul_taro($string);
}
return $nombre;
}

echo calcul_taro(decompose_date('21.03.2007'));
?>


L'idée du truc, c'est de faire une fonction récursive : c'est à dire tant que ta somme est un nombre (au moins un chiffre), et bien il faut reprendre le calcul avec ce nombre jusqu'à tomber sur un chiffre unique.

PS : j'ai aussi mis dans le code, une fonction qui décompose la date comme tu le disais dans ton message, c'est à dire que le nombre de départ, c'est le jour plus le mois plus l'année.
Amery
le 21/03/2007 à 13:56
Amery
Merci La Globule!

Ca marche tip top, comme on dit en Suisse! ;)

Amery
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours