> Tous les forums > Forum Autres langages
 Calcul du jour d'après - - > javaSujet résolu
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
Labougie
  Posté le 23/02/2015 @ 15:49 
Aller en bas de la page 
Groupe Sécurité

Bonjour,

Je cherche à savoir ce qui coince dans mon script, la compilation ne fonctionne pas. (2 erreurs que je ne trouve/comprends pas).

Si je mets "return" bas de page, j'obtiens une erreur, si je l'enlève,j'en ai 2. J'ai cru comprendre qu'il fait que ma dernière ligne "avant" return, me retourne une info,, le "else fev=28" le fait bien, me semble t'il.

La scde erreur se situe ici

if ( mois = 2 ) {
Terminal.lireInt bissext();
}

L'appel de la fonction n'est pas bon, j'en suis conscient, mais c'est aussi mes 1ers pas, et je danse mal la java, pourtant je la fais bien

Je mets le code en .java.

J'utilise un Terminal.class pour l'affichage.

Si vous me demandez le but de cette affaire, ben... C'est de chercher le jour du lendemain, j'sais plus compter, et j'ai plus de calendrier

Labougie



Modifié par Labougie le 02/04/2015 11:15
Publicité
Labougie
 Posté le 23/02/2015 à 16:11 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Groupe Sécurité

Bonjour JP,

Si je te comprends bien,

if ( ( mois = 1 ) || ( mois = 3 ) || ( mois = 5 ) || ( mois = 7 ) || ( mois = 8 ) || ( mois = 10 ) || ( mois = 12 ) ) {

Cette ligne doit être ainsi écrite

if ( ( mois == 1 ) || ( mois == 3 ) || ( mois == 5 ) || ( mois == 7 ) || ( mois == 8 ) || ( mois == 10 ) || ( mois == 12 ) ) { car elle vérifie l'égalité

En revanche cette dernière

jour = 31 est pour donner à la variable la valeur qui est derrière ici donc jour sera égale à 31

ai je bien saisi la nuance?

labougie

Labougie
 Posté le 23/02/2015 à 16:13 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Groupe Sécurité

Je réponds à ton édit sur return.

Donc dans mon cas avec Termina.java je suis plus dans

Terminal.ecrireStringln()

labougie

Labougie
 Posté le 23/02/2015 à 16:30 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Groupe Sécurité

Peux tu me pister pour la seconde erreur

l'appel de la fonction ( que je nomme fonction), mes lectures restent sans solution, pourtant j'ai un super bouquin Claude delannoy "Programmer en Java" Ed n°9

labougie

Labougie
 Posté le 23/02/2015 à 17:36 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Groupe Sécurité

J'ai corrigé pas mal de blagues. Notamment les && qui ne fonctionnaient pas, mais qui me semblaient logique dans la façon de lire (Not a statement).

J'ai même essayé avec des cloisonnement de () mais que neni.

Donc :

if ( jour = 31 ) {
	mois = (mois+1) && jour = 1;
	   	         } else jour = (jour+1);

est devenue

if ( jour == 31 ) {
mois = (mois+1);
jour = 1;
} else jour = (jour+1);

Par contre le return fev;

ne passe pas non plus, j'ai beau lui parler avec amour, que neni .

labougie

Labougie
 Posté le 23/02/2015 à 17:40 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Groupe Sécurité

Nouveau .java

Labougie
 Posté le 23/02/2015 à 17:50 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Groupe Sécurité

le code est juste au dessus.

Labougie

Labougie
 Posté le 23/02/2015 à 18:56 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Groupe Sécurité

Merci pour ton astuce.

Il faut que je revoie mes conditions afin de mieux les emboiter.

Labougie

Labougie
 Posté le 23/02/2015 à 21:46 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Groupe Sécurité

J'ai bien vu que j'avais des coquilles suite à la compilation.

Va falloir que je réorganise tout.

J'ai en tête des switch et case, espérons que je les prépare correctement.

labougie

Publicité
Labougie
 Posté le 24/02/2015 à 17:56 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Groupe Sécurité

Bonjour Jp,

J'ai résolu pas mal de coquilles.

  • le int fev=0 => problème de {} dans les conditions, c'est mieux mais pas certain que cela soit complètement juste pour les {}
  • l'incrémentation des jours quelque soit le mois est bon (exit fevrier)
  • le changement de mois de paire 30-04/2015 à impaire 01-05/2015 est bon

Ne fonctionne toujours pas

  • le changement d'année 31-12/2015 donne 1-13/2015
  • le changement de mois impaire 31-05/2015 vers paire donne 2-6/2015
  • le mois de février et les années bissextiles avec je suppose

nouveau code Jour2.java

labougie



Modifié par Labougie le 24/02/2015 18:03
Labougie
 Posté le 25/02/2015 à 18:31 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Groupe Sécurité

Bonjour JP,

Je ne comprends pas pourquoi cela ne fonctionne que pour les mois ayant 30 jours

et pas ceux ayant 31 jours

c'est pourtant le même raisonnement! et, je ne trouve pas cette double incrémentations pour les jours en question.

Je n'ai pas mis mon nez encore dans fevrier

labougie

Edit:

Il n'y a que pour mai que cela ne fonctionne pas



Modifié par Labougie le 25/02/2015 19:16
Labougie
 Posté le 25/02/2015 à 19:27 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Groupe Sécurité

je vais étudier ton conseil.

labougie

Labougie
 Posté le 02/04/2015 à 11:14 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Groupe Sécurité

Bonjour,

Je viens apporter ma solution qui est ce que ce qu'elle est, mais fonctionnelle.

public class Jour4 {
public static void main (String[] args) {

int jour, mois, annee;

Terminal.ecrireStringln("Donner le n° du jour: ");
jour = Terminal.lireInt();

Terminal.ecrireStringln("Donner le n° du mois: ");
mois = Terminal.lireInt();

Terminal.ecrireStringln("Donner l'année: ");
annee = Terminal.lireInt();

Terminal.ecrireStringln("la date donnée est :" + jour + " " + mois + " " + annee);


/* valeur des mois par défaut
janv, mars, mai, juillet, aout, oct, dec sont à 31 jours quelque soit l'année
avril, juin, sept, nov sont à 30 jours quelques soit l'année
fev est de 28 ou 29 si année est bissextile


Recherche de la valeur du mois exempté février prendre le recherche bissextile */


// Ici calcul pour les mois de 31 jours
//while (testReponse == false){ // initialisation de la boucle pour pouvoir rentrer au moins une fois dedans ''false'' --> mois de 31 jours

if (( jour < 31 && ( mois == 1 ) || ( mois == 3 ) || ( mois == 5 ) || ( mois == 7 ) || ( mois == 8 ) || ( mois == 10 ))){



jour = jour + 1;
mois = mois;
annee = annee;

Terminal.ecrireStringln("la date + 1 jour est :" + jour + " " + mois + " " + annee);

} else if

(( jour == 31 && ( mois == 1 ) || ( mois == 3 ) || ( mois == 5 ) || ( mois == 7 ) || ( mois == 8 ) || ( mois == 10 ))){


jour = 1;
mois = mois + 1;
annee = annee;

Terminal.ecrireStringln("la date + 1 jour est :" + jour + " " + mois + " " + annee);

}


if (jour == 31 && ( mois == 12)){

jour = 1;
mois = 1;
annee = annee + 1;

Terminal.ecrireStringln("la date + 1 jour est :" + jour + " " + mois + " " + annee);
}

// Ici calcul pour les mois de 30 jours

if (( jour < 30 && ( mois == 4 ) || ( mois == 6 ) || ( mois == 9 ) || ( mois == 11 ))){

jour = jour + 1;
mois = mois;
annee = annee;

Terminal.ecrireStringln("la date + 1 jour est :" + jour + " " + mois + " " + annee);

} else if (( jour == 30 && ( mois == 4 ) || ( mois == 6 ) || ( mois == 9 ) || ( mois == 11 ))){
jour = 1;
mois = mois + 1;
annee = annee;
Terminal.ecrireStringln("la date + 1 jour est :" + jour + " " + mois + " " + annee);
}

// Ici instructions pour le mois de février qui peut être bissextile ou pas

if ( mois == 2) { // année bissextile


if (bissext(annee) == 29) {
if (jour == 29){
jour = 1;
mois = mois + 1;
annee = annee;
} else if (jour < 29) {
jour = jour +1;
mois = mois;
annee = annee;
}


} else if (bissext(annee) < 29){
if (jour < 28){
jour = jour +1;
mois = mois;
annee = annee;
} else if (jour == 28){
jour = 1;
mois = mois + 1;
annee = annee;
}

}

Terminal.ecrireStringln("la date + 1 jour est :" + jour + " " + mois + " " + annee);
}



}

// méthode pour calculer les jours bissextiles
/*
ne sont pas bissextiles les années :

soit non divisibles par 4 ;
soit divisibles par 100, mais pas par 400.
*/
public static int bissext(int annee) {

int fev=0;



if ( ( annee % 4 ) == 0 ) {

if ( ( annee % 100 ) == 0 ){

if ( (annee % 400) ==0 ){

//29 jours si année divisible par 4, 100 et 400
fev = 29;
}
//28 jours si année divisible par 4, 100 et pas par 400
else {
fev = 28;
}
/*Remet systématiquement à 29 jours si année divisible par 4 et 100
(même si c'est passé dans la boucle au dessus et que ça a modifié à 28
quand ce n'est pas divisible par 400 */



//28 jours si année divisible par 4 et pas par 100
} else {
fev = 28;
}
/*Remet systématiquement à 29 jours si année divisible par 4 même si c'est
passé dans les boucles au dessus */



} else {
//28 jours si année n'est pas divisible par 4
fev = 28;
}

return fev; }
}

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour poster des messages. Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !


Sujets relatifs
mise a jour de java
Mise à jour de Java
Mise à jour de java sur Windows XP Pack 3
Mise à jour de java sur Windows XP Pack 3
probleme de calcul en JAVA
Fenêtre de confirmation avant de quitter "Java"
Plusieurs versions de Java
Java, un bouton colorié à la fois, et tous les autres sont neutres
Classer une arraylist (java)
Ameliorer le Main "Java" avec les fonctions & procédures
Plus de sujets relatifs à Calcul du jour d''après - - > java
 > Tous les forums > Forum Autres langages