Instancier un objet avec un paramètre de type date

Fermé
Nicekloe Messages postés 79 Date d'inscription lundi 30 octobre 2017 Statut Membre Dernière intervention 31 mai 2018 - 6 mars 2018 à 10:27
Nicekloe Messages postés 79 Date d'inscription lundi 30 octobre 2017 Statut Membre Dernière intervention 31 mai 2018 - 6 mars 2018 à 14:00
Bonjour à tout le monde

Vous allez tous bien je l'espère. J'ai un problème avec un bout de code.
En fait, je travaille sur un exercice d'héritage pour le cas des comptes bancaires. J'ai donc une classe operation qui a les attributs libellé, date et montant. Je souhaite donc créer une méthode "créditer" qui prendra en paramètres le montant à verser et le libellé et qui se servira de la classe opération pour instancier une opération. Le problème c'est qu'à l'instanciation de la classe opération je souhaiterais lui passer comme paramètre pour l'attribut date la date actuelle du système. J'ai Googler là dessus, mais rien de ce que j'ai implémenté ne fonctionne. Je suis perdue. J'aimerais bien recevoir un coup de main SVP!

Je vous fait voir le bout de code sur lequel je bloque :

// Classe operation

public class Operation{
private flaot montant;
private Date date_operation;
private String libelle;
}

// Méthode créditer
public void crediter(float montant, String libelle){
Date d = new Date();
Operation op = new Operation (montant, d.getDate()+ " / " +(d.getMonth()+1) + " / " +(d.getYear()+1900, libelle);
this.listeOperation = listeOperation.add(op);
this.solde = this.solde + montant ;
}

2 réponses

jbye69 Messages postés 3 Date d'inscription mardi 6 mars 2018 Statut Membre Dernière intervention 6 mars 2018
6 mars 2018 à 11:02
Bonjour,
Salut ,

je ne suis pas un expert en JAva mais je crois qu'il faut que tu gères aussi un calendar.


Calendar nomducalendrier = calendar.getinstance();
et là tu dis a ton calendrier de se mettre à la date actuelle une fois qu'il l'est tu appliques à ta Date.


enfin c'est la piste à rechercher...


Configuration: Linux / Chrome 64.0.3282.186
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
6 mars 2018 à 11:25
Bonjour,

Dans ta classe Operation quels sont tes constructeurs disponibles ?

Si tu as un constructeur
Operation(float montant, Date date, String libelle)
tu peux faire un
new Operation(montant, new Date(), libelle);
dans ta méthode crediter.

Remarque : un type float c'est très imprécis, donc faire des calculs dessus va conduire à des erreurs.
Pour ce genre d'opérations il faut utiliser la classe BigDecimal.

Exemple :
float a = 0.05f;
System.out.println(a); // 0.05

float b = 0.01f;
System.out.println(b); // 0.01

float c = a + b;
System.out.println(c); // 0.060000002
0
Nicekloe Messages postés 79 Date d'inscription lundi 30 octobre 2017 Statut Membre Dernière intervention 31 mai 2018 1
6 mars 2018 à 14:00
Bonsoir KX

Merci bien pour ta réponse. Je vais tester ta proposition, et je te reviens stp
0