Class Date - - débutant !!

Résolu
juancho2786 Messages postés 39 Date d'inscription mardi 5 juillet 2005 Statut Membre Dernière intervention 29 octobre 2008 - 28 oct. 2006 à 01:21
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 - 28 oct. 2006 à 01:44
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

Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
28 oct. 2006 à 01:44
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)
3
Rejoignez-nous