begin process at 2010 03 21 00:57:07
  Trouver un code source :
 
dans
 
Accueil > Forum > 

JAVA / J2EE / J2ME

 > 

Divers

 > 

Débutant(e)

 > 

Class Date - - débutant !!


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Class Date - - débutant !!

samedi 28 octobre 2006 à 01:21:09 | Class Date - - débutant !!

juancho2786

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;i<année;i++){
      if(estBissextile(i))
          nbrDeJours+=366;
      else nbrDeJours+=365;
  }
  for(int y=1;y<mois;y++){
      nbrDeJours+=nombreDeJoursDuMois(année,y); 
  }
     nbrDeJours+=jour;
  
     this.numéroDeJour=nbrDeJours;
 }
 
     public int getNuméroDeJour(){
     return this.numéroDeJour;
 }

 public int getJour(){
     int année,mois,numéroDeJour,joursRestant;

     année=getAnnée();
     mois=getMois();
     Date jour = new Date(1,mois,année);
     numéroDeJour=jour.getNuméroDeJour();
     joursRestant=this.numéroDeJour-numéroDeJour;
     return joursRestant+1;
 }
 
 public int getMois(){ 
  
     int mois=1,joursDansMois,numéroDeJour=this.numéroDeJour,année;
     int totalJoursAnnées=0,joursRestant=0;
  
     année=getAnnée();
     for(int i=1900;i<année;i++){
         if(estBissextile(i))
            totalJoursAnnées+=366;
            else totalJoursAnnées+=365;
        }
     joursRestant=numéroDeJour-totalJoursAnnées;
     joursDansMois=31;
     while(joursRestant>joursDansMois){
         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éroDeJour<autreDate.getNuméroDeJour())  
      return -1;
     else if(this.numéroDeJour>autreDate.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;
 }
}


 

samedi 28 octobre 2006 à 01:44:25 | Re : Class Date - - débutant !!

Ombitious_Developper

Réponse acceptée !
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)




Cette discussion est classée dans : date, int, return, année, numérodejour


Répondre à ce message

Sujets en rapport avec ce message

JTable : afficher une Date [ par isako ] Bonjour,Ce sujet n'est pas nouveau dans le forum, mais je n'ai pas trouvé la solution... Je vous soumets mon problème en espérant que l'un de vous pou Pb avec une JTable et getSelctedRow() [ par gyome314 ] Salut les jeunes !Voila mon pb...Dans une interface graphique, je cherche éditer une liste de fichiers sous la forme d'une JTable avec une seule colon JTable éditeur de couleur [ par jc_romeo ] BonjourJe voudrais faire une JTable avec le fait que quand on clique sur une des cases on puisse changer sa couleur de fond.j'ai donc créer la classe: ajout d'une methode [ par babylonne ] Bonsoir tout le monde ,    voilà j'ai un ptit problem par rapport à ce code source ie j'ai ajouté une methode prochainJour() pour incrementer jour dan convertir un string en Date [ par supers03 ] Salut à tous...Je souhaiterai convertir une chaine de caractère en une Date pour pouvoir la comparer à la date d'aujourd'hui... La javadoc me propose ajouter dans cette table des button (JAVA JTABLE JBUTTON) [ par zarziszita ] salut a toutes le monde mon probleme que j'ai envie ajouter deux button a la fin de table une des button permet ajouter un ligne .le methode main se t Help [ par fredspv ] Que faire avec les erreurs du ptit prog suivant ?public class Nat{ int n; public Nat(int n){ this.n=n; } public int getValue(){ return n; aide explication paint (tableaux de Hash) [ par Bilouz ] Bon voilà je viens de choper un pgm sympa style paint, juste pour dessiner et effacer le contenu.Par contre je ne comprends pas du tout comment foncti javamail et flag [ par titinoosReims ] bonjour, voila mon pbJe souhaite réaliser une boite de réception de messagerie en java. Je possede une classe que j'utilise dans des pages jsp.Cependa Comment obtenir l'année de la date du jour - URGENT [ par chyplie ] Bonjour j'aurais aimer savoir comment obtenir l'année de la date système, celle ci doit ensuite être accessible de toutes mes classes. Merci


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,312 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales