Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Aide | Shop Recherche
1870 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Problème d'algo pour le jour suivant d'une date

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème d'algo pour le jour suivant d'une date

n°2248264
jrsannn
Work Beat Talent
Posté le 13-01-2015 à 15:26:29  profilanswer
 

Bonjour,  
Je bloque sur un exercice de programmation en PHP, vous trouverez l'énoncé en dessous
 
1.5. Écrire un algorithme fournissant à partir d'une date donnée sous la forme de 3 entiers ($jour, $mois,
$année) la date du lendemain.
 
J'ai réussi à gérer le passage d'un mois à l'autre au 31 de chaque mois avec le retour au premier du mois mais je ne parviens pas à passer d'une année à l'autre. Au lieu de passer de 31/12/xxxx à 01/01/xxxx+1 mon algo me sort 01/13/xxxx
 
Voilà ce que j'ai programmé :  
 
 
 
 //1.5
  $a=2014;
  $m=12;
  $j=31;  
 
  //Controle validité J M
  if ($j>31) {
   echo "il y à une erreur dans le jour";
  }
  if ($m>12) {  
   echo "il y à une erreur dans le mois";
  }
 
 
 //Si dernier jour du mois
  if ($j<31) {
   $j=$j+1;}
   else {
    if ($j==31) {
       $j=1;
       $m=$m+1;}
       if ($m==12) {
        $m==1;
        $a==$a+1;}
         
    echo "demain nous seront le $j $m $a";}
 
 
 
 
Ca fais quelque heures que je bloque dessus je ne réussis pas à m'en sortir. Pouvez vous me donner un petit coup de main ?  
 
Merci d'avance !

mood
Publicité
Posté le 13-01-2015 à 15:26:29  profilanswer
 

n°2248266
scull
MySCULL cay bon mangez en!
Posté le 13-01-2015 à 15:36:32  profilanswer
 

Et comment tu comptes gérer le changement d'année ? et le passage du 28 février au 29 tous les 4 ans ?
 
Tu peux fixer ton problème de manière fiable en 3 lignes:
 
Transforme ses 3 éléments ($a $m $j) en un objet DateTime.
Ajoute une intervalle d'une journée à ton objet DateTime créé au dessus.
Affiche ton dateTime sous le format de ton choix...
 
Et un peu de lecture, histoire que tu bosses un peu quand même :
http://php.net/manual/fr/class.datetime.php
http://php.net/manual/fr/class.dateinterval.php


Message édité par scull le 13-01-2015 à 15:40:26

---------------
Créer son forum gratuit |  Mon beau blog phpBB caÿ le mal :o
n°2248269
MaybeEijOr​Not
but someone at least
Posté le 13-01-2015 à 15:39:37  profilanswer
 

Salut,
 
Premièrement je te conseille de te munir d'un calendrier afin d'en étudier son fonctionnement car "au 31 de chaque mois" ne correspond pas vraiment à notre calendrier.
 
Deuxièmement ton problème est causé par le fait que tu fais une vérification après le changement de mois, cela peut se faire, seulement il faut te rappeler que dans ce cas là il faut corriger la valeur et donc qu'elle est fausse. Or tu supposes une valeur de 12 mois pour changer d'année, valeur qui n'est pas erronée puisqu'il y a bien 12 mois dans une année.

n°2248270
jrsannn
Work Beat Talent
Posté le 13-01-2015 à 15:41:57  profilanswer
 

Merci beaucoup pour ta réponse !
Je sais que je peux le faire à l'aide de cette fonction merci beaucoup :) Mais on me demande d'écrire moi même l'algo permettant cela et de le calculer manuellement sans utiliser les fonction propres à PHP :pfff: ..  
Je sais que ce serais plus simple autrement mais la consigne étant là je peux pas faire autrement :(

n°2248272
MaybeEijOr​Not
but someone at least
Posté le 13-01-2015 à 15:59:08  profilanswer
 

Si tu bloques toujours, il te suffit de simuler toi-même ton algorithme, à chaque ligne tu écris les valeurs de tes variables et tu regardes ce que ça donne. Tu trouveras vite le problème.

n°2248414
rufo
Pas me confondre avec Lycos!
Posté le 14-01-2015 à 17:23:10  profilanswer
 

Petit conseil : tu peux définir un tableau qui contient pour chaque n° de mois, le nb de jours max.
Ex : $NBJ = array(1 => 31, 2 => 28, 3 => 31, 4 => 30...);
Ainsi, pour avoir le nb de jours d'un mois : $NBJ[$mois]
Avec le cas particulier de février à gérer. Une année est bissextile si elle est :
* divisible par 4 mais non divisible par 100.
* divisible par 400.
Si ton année répond à l'un de ces 2 critères, le mois à 29 jours.
 
Après, y'a plus que le cas du 31/12 à gérer pour le changement d'année.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Cantine Calandreta : http://sourceforge.net/projects/canteen-calandreta

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Problème d'algo pour le jour suivant d'une date

 

Sujets relatifs
[POWER SHELL] Problème d'import de module Active DirectoryProblème sur l'entame de ce code
probleme producteur consommateurProblème d'envoi de mail avec formulaire Ajax +Json
Problème avec tuple sur Python 3.4.1boutons ajout date et heure actuelle si la case est vide (excel)
C: probleme de compil sur un typede => ferror: syntax error before ''Problème mise à jour des entity JPA /glassfish
Problème Script sql developer Oracle 
Plus de sujets relatifs à : Problème d'algo pour le jour suivant d'une date


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite) / Groupe LDLC / Shop HFR