Class Date - - débutant !! [Résolu]

Signaler
Messages postés
39
Date d'inscription
mardi 5 juillet 2005
Statut
Membre
Dernière intervention
29 octobre 2008
-
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
-
Bonsoir, je suis debutant et j'airamerais savoir si la class Date est bien faite ( peut etre rajouter des commentaires) et s'il faut rajouter encore des méthodes... Aidez moi please !!

public class Date{
 
   private int numéroDeJour;  // le 1/1/1900 est le jour n°1

  public static boolean estBissextile(int année){
     if((année%4==0 && !(année%100==0))|| année%400==0)
         return true;
     else return false;
 }
 
 public static int nombreDeJoursDuMois(int année, int mois){
     if(mois==1 || mois==3 || mois==5 || mois==7 || mois==8 || mois==10 || mois==12)
         return 31;
     else if(mois==2){
         if(estBissextile(année))
             return 29;
         else return 28;
      }
     else return 30;
   }
  
  public static boolean estValide(int jour, int mois, int année){
      if(année<1900)
         return false;
      if(mois<1 || mois>12)
         return false;
      if(jour<1 || jour>nombreDeJoursDuMois(année,mois))
         return false;
      else return true;
 }
 
  public Date(int numéroDuJour){ 
      this.numéroDeJour=numéroDuJour;
 }


 public Date(int jour, int mois, int année){ 
     int nbrDeJours=0;
 
   for(int i=1900;ijoursDansMois){
         joursRestant-=joursDansMois;
         mois++; 
         joursDansMois=nombreDeJoursDuMois(année,mois);
  }
     return mois;
 }
 
 public int getAnnée(){
     int numéroDeJour=this.numéroDeJour;  
     int cptAnnée=1900,cptJours,année=0;
  
     if(estBissextile(cptAnnée))
         cptJours=366;
     else cptJours=365;
     while(numéroDeJour>cptJours){
         numéroDeJour-=cptJours;
         cptAnnée++;
         année++;
         if(estBissextile(cptAnnée))
             cptJours=366;
         else cptJours=365; 
  } 
     return 1900+année;
  }
 
 public String toString(){
   return getJour()+"/"+getMois()+"/"+getAnnée(); 
 }
 
 
    //compareTo renvoie un négatif si la date courante est antérieure à la date passée en paramètre,
    // 0 si égale 
    // un positif si la date courante est postérieure à la date passée en paramètre
 
  public int compareTo(Date autreDate){
    
     if(this.numéroDeJourautreDate.getNuméroDeJour())
      return 1;
     else
      return 0;
 }
 
 public int nombreDeJoursEntre(Date autreDate){  
     return Math.abs(this.numéroDeJour-autreDate.getNuméroDeJour());
 }
 
 public Date leLendemain(){
     Date date= new Date(getJour()+1,getMois(),getAnnée());
     return date;
 }
 
 public Date datePlusNombreDeJours(int nombreDeJour){
     Date date= new Date(getJour()+nombreDeJour,getMois(),getAnnée());
     return date;
 }
 
 public int jourDeLaSemaine(){ // dimanche --> 0 ; lundi --> 1 ; ...
     return this.numéroDeJour%7;
 }
}




 

1 réponse

Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
35
Salut :

Tu peux construire ta propre classe qui :
1. hérite de la classe Date.
2. tu ajoute tes propres méthodes pour adapter ta nouvelles classe à tes exigences.

Note :

1. On ne peux pas tout créer.
2. L'héritage est inventé pour des telles situations.
3. On ne peut pas satisfaire tous les besoins de chacun (ceci aime ça et l'autre n'aime pas ça)