begin process at 2008 07 24 19:19:45
1 215 858 membres
413 nouveaux aujourd'hui
14 179 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Augmenter une date de 4 jours (sans calendar) [ Divers / Général ] (daviddubois)

Augmenter une date de 4 jours (sans calendar) le 23/05/2007 17:26:57

daviddubois
Bonjour tout le monde,

J'ai une méthode main qui envoie trois informations (jour, mois, année) à une classe que j'ai créé.

Cette clasee me renvoit simplement la date par rapport à ces trois informations envoyées.

Ma question :

Sant utiliser java.util.calendar, est-il possible d'envoyer un entier à la classe et augment la date du constructeur (car j'ai mis des valeurs pas défaut dans le constructeur de la date) et qu'elle me retourne la date augmenté de l'entier envoyé ?

Exemple :

Via clavier.lireInt() je demande :

"veuillez indiquer combien de jour voulez-vous additinner au 24 mai 2007", si je mets 4, j'obtiens 28 mai.

Merci d'avance pour votre aide.

Voici ce que j'ai déjà fait :

voici ma classe date (plus bas vous trouverez la classe main)

import java.util.Calendar;
public class Date
{
 private int jour;
 private int mois;
 private int annee;
 
 public Date()
 {
  jour = 1;
  mois = 1;
  annee = 2000;
 }
 
 public void setDate(int jour,int mois,int annee)
 {
  if ((jour<1)||(jour>31))
  {
   this.jour=1;
  }
  else
  {
   this.jour = jour;
  }
  
  if((mois<1)||(mois>12))
  {
   this.mois = 1;
  }
  else
  {
   this.mois = mois;
  }
  
  if(this.jour>nbJoursMois(this.mois,this.annee))
  {
   this.jour = nbJoursMois(this.mois,this.annee);
   System.out.println("vrai");
  }
  
  this.annee = annee;
 }
 
 public String toFormat1()
 {
  String s="";
  
  if(this.jour<10)
  {
   s+= "0"+this.jour +"/";
  }
  else
  {
   s+= this.jour+"/";
  }
  
  if(this.mois <10)
  {
   s+= "0"+this.mois+"/";
  }
  else
  {
   s+=this.mois+"/";
  }
  
  s+= this.annee;
  
  return s;
 }
 
 public String toFormat2()
 {
  String s="";
  
  if(this.jour<10)
  {
   s+= "0" + this.jour+"/";
  }
  else
  {
   s+= this.jour+"/";
  }
  
  switch(mois)
  {
   case 1: s+= "Janvier"+"/";break;
   case 2: s+= "fevrier"+"/";break;
   case 3: s+= "mars"+"/";break;
   case 4: s+= "avril"+"/";break;
   case 5: s+= "mai"+"/";break;
   case 6: s+= "juin"+"/";break;
   case 7: s+= "juillet"+"/";break;
   case 8: s+= "aout"+"/";break;
   case 9: s+= "septembre"+"/";break;
   case 10: s+= "octobre"+"/";break;
   case 11: s+= "novembre"+"/";break;
   case 12: s+= "decembre"+"/";break;
  }
  
  s+= this.annee;
  
  return s;
 }
 
 public int nbJoursMois(int mois, int annee)
 {
  
  int nbJourMois = 1;
  switch(mois)
  {
   
   case 1:
   case 3:
   case 5:
   case 7:
   case 8:
   case 10:
   case 12:nbJourMois =31;break;
   case 4:
   case 6:
   case 9:
   case 11:nbJourMois = 30;break;
   case 2:
   {
    if (anneeBissextile(annee))
    {
     nbJourMois = 29;
    }
    else
    {
     nbJourMois = 28;
    }
    
   }
   
   
  }
  
  return nbJourMois;
 }
 
 private boolean anneeBissextile(int annee)
  {
   return annee%4==0 && (annee%100!=0 || annee%400==0);
 }
}

La méthode main :

public class DateTest
{
 public static void main(String [] args)
 {
  Date maDate = new Date();
  
  System.out.println("La date du constructeur : " + maDate.toFormat1());
  
  maDate.setDate(31,2,2007);
  
  System.out.println("La date d'aujourd'hui au format 1 : " + maDate.toFormat1());
  
  System.out.println("La date d'aujourd'hui au format 2 : " + maDate.toFormat2());
 }
}


Re : Augmenter une date de 4 jours (sans calendar) le 23/05/2007 18:06:02

lafolle24320
pourquoi ne crée tu pas un setMois ou encore un setJour ??? public void setJour(int nbJourAAjoute) { jour = jour + nbJourAAjoute; } et après tu rappelle ton setDate bon courage lafolle

Re : Augmenter une date de 4 jours (sans calendar) le 23/05/2007 18:46:53

daviddubois
Bonjour lafolle,

Merci pour cette piste.

Mais comment fais-tu si on ajoute 10 jours au 24 mai, on passe en juin, comme est-ce qu'il va le savoir ?

Pire, si on veut rajouter 50 jours au 24 mai ?

Je pense que ce n'est pas facile à faire.

Merci encore.

beegees

Re : Augmenter une date de 4 jours (sans calendar) le 24/05/2007 08:41:30

lafolle24320
qui va savoir??? Sois tu fais un message d'avertissement en lui indiquant avant d'affecter la valeur que tu va changer de mois soit tu lui affiche la date après je ne vois pas trop où se situe ton problème là lafolle

Re : Augmenter une date de 4 jours (sans calendar) le 24/05/2007 08:45:06

daviddubois

Merci pour ta réponse.

Tu ne pourrais pas faire un exemple de code stp /

Merci d'avance.


Re : Augmenter une date de 4 jours (sans calendar) le 24/05/2007 09:41:33

lafolle24320
en fait je vais pas te faire le code parce que je suis au boulot et que j'ai pas mal de boulot. Ce que je peux te conseillé c dans ton setJour(). tu appelle une méthode simul date. Ce srea une date temproraire et tu pourra y voir si tu change de moi. si cette fonction simul date te renvoi (true) donc tu a changé de moi alors tu fais une joptionpane.showmessagedialog. si l'utilisateur clique sur ok alors tu exécute jour= jour + nbJour et ensuite ton setDate. voilà bonne continuation lafolle


Classé sous : date, case, jour, annee, mois

Participer à cet échange

Pub



Appels d'offres

Creation portail video
Budget : 3 000€
Site de e-commerce
Budget : 5 000€
Demande de devis pour ...
Budget : 7 000€

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Boutique

Boutique de goodies CodeS-SourceS