0
votes

Comment calculer la différence d'année dans mon programme?

J'écris un programme dans lequel un utilisateur peut entrer la date et la laisser imprimer. ASWELL Le programme a une date donnée pour calculer la différence d'année avec une deuxième entrée. Mon problème actuel est que lorsque j'appelle la méthode de calcul, tout semble fonctionner bien, mais malheureusement, la sortie est toujours 0.

Voici mon code: P>

Enter todays date!
12
12
2019
12.12.2019
Press <0>, if you want to know passed years between two dates. 
0
Enter a second date: 
12
12
1990
0


4 commentaires

Utilisez java.time ...


Prenez soin des conventions de nommage Java. Les noms variables doivent commencer par le caractère minuscule.


Vous ne devriez pas demander des valeurs dans le constructeur de votre classe. Vos arguments de constructeur ne sont attribués nulle part


S'il vous plaît ne vandalisez pas votre question.


3 Réponses :


0
votes

diffr.year et dates.year pointe vers la même valeur.

Passer le xmas objet à getyeardiff et faire différence = dates.year - xmas.year;

par exemple. GetYeardiff peut être modifié à xxx

méthode principale peut être modifié à xxx


3 commentaires

probablement je fais quelque chose de mal, mais quand j'essaie de passer l'objet de Noël dans la méthode, je reçois l'erreur: Noël ne peut pas être résolu à une variable


Malheureusement, la sortie reste 0


Veuillez consulter la réponse d'Anas Ablan, vous devez refracter votre code.



2
votes

Sa standard Java pour avoir des champs utilisant des lettres majuscules. De plus, votre constructeur pour vous dates code> ne fait rien avec les arguments passés. Au lieu de cela, ils sont attribués à partir de scanner. C'est aussi contre la convention. Le scanner doit être en dehors de demander une entrée, puis vous construisez la classe en fonction de l'entrée de l'utilisateur.

J'ai modifié votre code comme suit: p>

Tout d'abord votre Les dates code> peuvent être Simplifié à: p> xxx pré>

Puis j'ai créé une méthode pour demander l'entrée de date p> xxx pré>

qui simplifie alors votre GetYeardiff Code> et Assgring Code> Fonctions: P>

public static void main(String[] args) {
  System.out.println("Enter todays date!");
  Dates xmas = getDates();
  asString(xmas);
  getYeardiff(xmas);
  scan.close();
}


0 commentaires

1
votes

Je pense que le problème est avec l'ensemble de la structure de code, vous utilisez des variables statiques, puis vous les traitez sous forme de variables d'instinct, essayez de redéfinir votre classe après la journée, le mois, les variables d'année définies comme des variables normales non statiques Statique Static Static. Seulement être utilisé lorsque vous souhaitez avoir une valeur fixe à utiliser au niveau de la classe, et même si vous pouvez séparer votre classe de dates de la classe principale pour rendre les choses plus faciles et plus claires pour vous-même.


0 commentaires