J'aimerais convertir la variable seconde ; 12345678912 en année et en mois.
J'arrive bien à 391 pour l'année ; mais par contre j'ai un problème au niveau du mois la réponse doit être 5 et moi j'obtiens 4762.
Je ne parviens pas à comprendre d'où provient mon erreur ? Est-ce le calcul du modulo ?
Merci pour une éventuelle réponse de votre part.
<?php
/*
Écrivez un programme qui convertit un nombre entier de secondes fourni au départ en un
nombre d’années, de mois, de jours, de minutes et de secondes
(utilisez l’opérateur modulo : %).
Le nombre de secondes est fourni au départ :
*/
$nsd = 12345678912; // => nombre de seconde:
$nspj = 3600 * 24; // => nombre de seconde par jour * le nombre d'heure dans une journée
$nspa = $nspj * 365; // => nombre de seconde par année
$nspm = $nspj * 30; // => nombre de seconde par mois ; il y a 30 jours dans un mois
/*
Nombre d'années contenues dans la durée fournie
*/
$na = (int) ($nsd / $nspa); // => division entière
$nsr = $nsd % $nspa; // => division modulo ; des secondes restants
//Nombre de mois contenues dans la durée fournie
$nm = (int) ($nsd / $nspm);
$nsr = $nsd % $nspm;
echo "Le nombre de seconde à convertir => ".$nsd ;
echo "<br />";
echo "Cette durée correspond à " .$na. " années de 365 jours.";
echo "<br />";
echo "Cette durée correspond à " .$nm. " mois de 30 jours. ";
echo "<br />";
echo "second restant " .$nsr. " .";
?>
Tu dois retirer à chaque fois le nombre de secondes correspondant : pour commencer retire le nombre de secondes correspondant à 391 années, pour calculer le reste en mois.
Cela reste très théorique de toute façon, le nombre de jour n'est pas fixe dans un mois.
Je pense que c'est au niveau du $nsr que ça bloque ?
Mes variables ne sont pas correctes ? Ne faut-il pas prendre le nombre de secondes définit ($nsd) modulo le nombre de secondes par années pour obtenir le nombre de secondes restants ?
Merci je ne savais pas, c'était donc ça le hic. Je vais travailler sur des nombres plus petits.
Problème au niveau du modulo ??
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
N'oubliez pas d'activer les erreurs PDO.
N'oubliez pas d'activer les erreurs PDO.
N'oubliez pas d'activer les erreurs PDO.
N'oubliez pas d'activer les erreurs PDO.