Aide java
Répondre à la discussion
Affichage des résultats 1 à 10 sur 10

Aide java



  1. #1
    MANTA..

    Aide java


    ------

    Bonjour, j'ai besoin de votre aide car je voudrais comparer 2 heure, pour pouvoir faire cette exercice ---------------->
    Nom : Capture.jpg
Affichages : 74
Taille : 136,1 Ko

    C'est pour le tarif unitaire (ce qu'il y a dans le tableau), en gros ma méthode recoit une heure de connection et je dois retourné le tarif à appliquer.


    Merci d'avance

    -----

  2. #2
    invite62588872

    Re : Aide java

    Bonjour,

    je t'avoue que je n'ai pas lu l'énoncé vu ta question, par contre si ton but est en effet de comparer deux heures, tu peux le faire de plusieurs façons, par exemple :

    - si on est dans un contexte de timestamp qu'on stoque en DB par exemple :
    Code:
    Timestamp avant = new Timestamp(System.currentTimeMillis());
    Timestamp après = new Timestamp(System.currentTimeMillis());
    avant.compareTo(après); // ceci renvoie quelque chose plus petit que 0 car "avant" a été créé avant "après"
    - ou encore :
    Code:
    Calendar avant = Calendar.getInstance();
    Calendar après = Calendar.getInstance();
    avant.compareTo(après); // même chose
    
    Long différenceEnMs = après.getTimeInMillis() - avant.getTimeInMillis(); // on obtient la différence en ms entre les 2 temps
    
    Date uneDate = avant.getTime(); // renvoie un objet "Date" qui peut aussi être très utile.
    En espérant que ça t'aide, sinon il faudra un peu préciser ce dont tu as besoin

    Note que le net t'offre certainement déjà toutes les réponses à tes questions

    Nils

  3. #3
    MANTA..

    Re : Aide java

    MERCI BEAUCOUP POUR TA REPONSE.. mais malheureusement je ne vois pas comment utiliser ce que tu m'a donné pour "comparer heure".. en gros ce que je voudrais faire c'est ca --->

    public int getTarifUnitaire(heure int)
    {

    la variable heure c'est l'heure à laquelle la personne s'est connécté
    si il s'est connécté entre 20h du soir et 8h du matin je dois retourner 15 , si il s'est connecter entre 8h et 12h ou entre 14h et 20 je dois retourné 30 ect.... mais le problème c'est que la variable int que je recois ne peut pas être supérieur à 20 et inférieur à 8. Donc je pense que ce que j'ai fais (voir en dessous) ne marche pas

    if (heure>=20 && heure <8)
    {
    tarifU=15;
    }
    else if ((heure>=8 && heure <12)||(heure>=14 && heure <20))
    {
    tarifU=30;
    }
    else if (heure>=12 && heure <14)
    {
    tarifU=45;
    }

    return tarifU;

  4. #4
    invite4492c379

    Re : Aide java

    Citation Envoyé par MANTA.. Voir le message
    Bonjour, j'ai besoin de votre aide car je voudrais comparer 2 heure, pour pouvoir faire cette exercice ---------------->

    C'est pour le tarif unitaire (ce qu'il y a dans le tableau), en gros ma méthode recoit une heure de connection et je dois retourné le tarif à appliquer.


    Merci d'avance

    Hello,

    Un exercice sur 4 pages ? Enfin passons. La réponse de vae- est complète ...

    Comment codes-tu ton heure ? Si tu codes ton heure comme un int tu as donné la réponse.

  5. A voir en vidéo sur Futura
  6. #5
    MANTA..

    Re : Aide java

    Citation Envoyé par photon57 Voir le message
    Hello,

    Un exercice sur 4 pages ? Enfin passons. La réponse de vae- est complète ...

    Comment codes-tu ton heure ? Si tu codes ton heure comme un int tu as donné la réponse.
    Oui je me suis mal exprimé j'ai juste besoin de ca pour faire une question, il ne me manque que celle la.

    Je pense comprendre ce que tu veut dire, en fait c'est la premiére ligne qui me pose problème.
    if (heure>=20 && heure <8)
    {
    tarifU=15;
    }

    Par éxemple si l'int (l'heure) c'est 23 (pour 23h), il est >20 mais pas inférieur à 8 donc il ne va pas retourné 15. Mais je viens de pensé à un moyen de résoudre le problème;

    if (heure>=20 || heure <8)
    {
    tarifU=15;
    }

    est-ce que vous pensez que ca marchera?

  7. #6
    invite4492c379

    Re : Aide java

    Disons que compris entre 8h du soir et 8h du matin signifie que l'heure est comprise entre 20H et 24H ou 0H et 8H, non ?

    Si je peux te conseiller une bonne pratique, quand tu as une conditionnelle met des parenthèses partout ...

  8. #7
    invite62588872

    Re : Aide java

    Citation Envoyé par MANTA.. Voir le message
    si il s'est connécté entre 20h du soir et 8h du matin je dois retourner 15 , si il s'est connecter entre 8h et 12h ou entre 14h et 20 je dois retourné 30 ect.... mais le problème c'est que la variable int que je recois ne peut pas être supérieur à 20 et inférieur à 8.
    Si l'heure (l'int) donnée en paramètre ne sera jamais supérieure à 20 ni inférieure à 8 (càd que ce sera toujours un int entre 8 et 20), je ne vois pas comment le tarif "15" peut un jour être retourné, vu qu'il faut qu'il soit entre 20h du soir et 8h du matin

    [Hors Sujet]
    Sinon petite remarque générale concernant le code :
    dans ton cas tu peux pas mal simplifiler le code et écrire ceci (je réécris exactement la même chose, je n'ai pas modifié la logique !) :
    Code:
    if (heure>=20 && heure <8){
      return 15;
    }
    if ((heure>=8 && heure <12)||(heure>=14 && heure <20))
    {
      return 30;
    }
    return 45; // il ne reste que cette possibilité !
    2 choses à noter :
    - Etant donné que la seule chose que tu fais après tes tests est de renvoier la variable que tu définis, tu peux te permettre de directement la renvoyer dès que le programme rentre à l'intérieur d'un "if" qui renvoie true. Ca te permet d'économiser une variable, d'avoir moins de code à lire, et de supprimer l'enchaînement de if/else/ifelse/ifelse. C'est juste un peu plus propre. Note qu'on peut le faire dans ce cas-ci car on ne fait que renvoyer une variable - dans des cas plus complexes il faut éviter autant que possible d'avoir plusieurs "return" dans une fonction (c'est juste de la best practice, ça fonctionne tout aussi bien hein)
    - Tu n'as pas besoin d'effectuer le dernier test, car il couvre la dernière "tranche temporelle" qui soit encore possible : si tu arrives jusque là dans ton programme tu est sur à 100% que le dernier IF sera OK. Dans la version que j'ai posté ça se traduit par "return 45;"
    Evidemment je pars du postulat que l'heure reçue sera toujours entre 0 et 24
    Il faut aussi penser au fait qu'en faisant ça, contrairement à la méthode que tu as employé, tu es certain de toujours renvoyer un tarif.

    En effet, si ta méthode renvoyait un Integer au lieu d'un int, tu renverrais.. null ! Et tu te prends probablement une NullPointerException dans la tronche plus loin. Dans ton cas, je ne vois pas l'initialisation de "tarifU" (j'ai juste le code de ta réponse sous les yeux). Il est bon de savoir qu'en Java un int non initialisé vaut 0. Et tu ne veux certainement pas renvoyer un tarif de "0" (qui donnerait d'ailleurs une compilation warning du style "tarifU might never be initialized")
    Bref je m'égare

    J'espère que c'est relativement clair, je peux élaborer si nécessaire.
    [/Hors Sujet]

  9. #8
    MANTA..

    Re : Aide java

    AHHH merci beaucoup pour votre aide, merci c'est parfaitement clair maintenent. Par contre j'ai un autre souci sur lequelle je travaille depuis plusieur heure mais que je n'arrive pas à résoudre. En fait je me suis trompé dans l'énoncé ce sont des centimes et pas des euros, donc ca donne ca (j'ai enlevé quelque ligne) --->


    public int getTarifUnitaire(Connexion cnx)
    {

    if (heure>=20 && heure <8){
    return 0.15;
    }
    if ((heure>=8 && heure <12)||(heure>=14 && heure <20))
    {
    return 0.30;
    }
    return 0.45; // il ne reste que cette possibilité !

    }

    Le probléme c'est que la fonction doit OBLIGATOIREMENT retourné un INT, mais quand je fais une conversion de double en int le resultat devien 0 et étant donné que mon programme dépend de cette méthode, tous mes résultat sont faussé... j'ai essayé plusieur méthode pour conserver le même chiffre apré la conversion mais rien n'a marché.

    Voici la méthode dans laquelle le resultat de la méthode precedente va être utilisé. Cette méthode fait partie d'une classe CarteBancaire :

    public void debiter(int dureeComptabilisee, int tarifUnitaireApplique) tarifUnitaireApplique est le resultat de la méthode precedente
    {
    int prix;
    System.out.println("l'ancien solde est " + this.solde);

    prix= (dureeComptabilisee* tarifUnitaireApplique); ici aussi j'ai un probléme il ne veut pas me donner le bon resultat a chaque fois j'ai 0
    this.solde= (this.solde-prix);

    System.out.println("le nouveau solde est " + this.solde);
    }
    }


    Si vous avez des proposition n'hesitez pas, merci d'avance
    Dernière modification par MANTA.. ; 22/09/2011 à 13h56.

  10. #9
    invite4492c379

    Re : Aide java

    Si ta fonction doit renvoyer un int qui puisse coder une somme en centimes c'est simple :
    pour 0,45€ tu dois renvoyer 45
    Tu n'as pas le choix.

    Charge à la fonction appelante de faire les conversions nécessaires.

  11. #10
    MANTA..

    Re : Aide java

    Je n'arrive pas à supprimer mon precedent message mais normalement c'est bon, dans l'enoncé il est écrit que les centimes doivent êtres éxprimé en nombre entier de centimes d'euros... je ne suis pas sur de bien comprendre ce que ca veut dire mais bon... tant pis.. Encore merci pour votre aide

Discussions similaires

  1. aide!!java!!
    Par narakphysics dans le forum Programmation et langages, Algorithmique
    Réponses: 1
    Dernier message: 21/03/2011, 00h03
  2. Aide java: programmation d'une boite a rythme, sequenceur
    Par invite2e9996ac dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 19/10/2009, 11h47
  3. Java, java, java, where are you, there's a mission for you !
    Par invite1237a629 dans le forum Logiciel - Software - Open Source
    Réponses: 35
    Dernier message: 16/03/2008, 22h10
  4. Aide Installation de Java Media Framework
    Par invite0b127ea6 dans le forum Logiciel - Software - Open Source
    Réponses: 3
    Dernier message: 03/02/2007, 09h24
  5. traitement de fichier en java- aide
    Par Gaara dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 30/07/2005, 14h09