0
votes

Types de mauvais opérande pour opérateur binaire && lorsque vous essayez de calculer la date de naissance de la date actuelle

J'essaie d'obtenir un utilisateur de saisir YR Jour Jour, puis de calculer l'âge actuel en fonction de l'entrée fournie et de montrer l'âge à l'écran.

Voici le début à mon code: XXX

Je reçois un "Types de mauvais opérandes pour opérateur binaire &&" Je ne peux pas comprendre pourquoi, et je suis assez nouveau à coder. Merci pour toute aide


2 commentaires

=> est un opérateur incorrect. Il devrait être > = . Vérifiez docs.oracle.com/javase/tatutorial/java/nutsandbolts/... pour en savoir plus sur les opérateurs.


BTW actuel_date <= 1 && actuel_date> = 31 ne peut pas être vrai en même temps, vous n'aurez donc jamais dans la partie interne de votre si . Vous auriez peut-être prévu actuel_date <1 || actuel_date> 31 .


5 Réponses :


2
votes

c'est > = non => donc si (actuel_date <= 1 && actuel_date> = 31)

(N'utilisez pas 0 comme préfixe pour les chiffres, il leur permet d'interpréter comme octal)


2 commentaires

Merci pour l'information, que dois-je utiliser alors?


@Josiahreyes> = =



0
votes

N'est-il pas plus facile d'écrire une fonction dans laquelle l'utilisateur fournira une année, un mois et la journée et qu'il retournera quel âge a l'utilisateur? Vous trouverez ci-dessous un exemple de fonction qui le fait.

public static int getYears(int year, int month, int day)
{
    LocalDate yearOfBirth = LocalDate.of(year, month, day);
    LocalDate currentDate = LocalDate.now();
    Period period = Period.between(yearOfBirth, currentDate);
    return period.getYears();
}


0 commentaires

-1
votes

Vous obtenez l'erreur parce que

vous utilisez si (actuel_date 31) code> au lieu de p> xxx pré> > Après avoir modifié votre code sera le suivant: p>

static void checkAgeFormat(int current_date, int current_month, int current_year, int birth_date, int birth_month, int birth_year) {

        int f=0
        if (current_date <= 01 && current_date >=31){
            System.out.println("Invalid current_date");
            f=1;
        }
}


1 commentaires

@Quie pourquoi pourquoi le bowvote, s'il vous plaît? Je ne vois pas que cette réponse est pire que les autres (seulement 5 réponses semblent être plus que nécessaire pour une simple faute de frappe).



1
votes

Qu'essayez-vous de revenir ici? Le nombre de jours laissés avant la date de naissance de quelqu'un? Vous pouvez utiliser la méthode entre () code> de la période code> de la classe code> pour cela.

static void checkAgeFormat(int current_date, int current_month,
                            int current_year, int birth_date,
                            int birth_month, int birth_year) {
LocalDate birthDate = LocalDate.of(birth_year, birth_month, birth_date);
long daysLeft = Period.between(LocalDate.now(), birthDate).get(ChronoUnit.DAYS);


}


1 commentaires

J'essaie d'obtenir un utilisateur pour saisir YR Mondi, puis le système calculer l'âge actuel en fonction de l'entrée fournie et montrez l'âge à l'écran.



1
votes

Comme je l'ai déjà mentionné dans le commentaire, le problème est dû au mauvais symbole, => pour l'opérateur. Il devrait être > = . Vérifiez Ce pour en savoir plus sur les opérateurs.

Apart De cela, je peux voir un problème grave avec votre logique. La façon dont vous validez les valeurs de date est une façon naïve de le faire. Je vous suggère de le faire à l'aide des API OOTB comme indiqué ci-dessous: xxx

sortie: xxx


0 commentaires