Programme qui lit un nombre entiet represente des secondes [Résolu]

MrZoe 845 Messages postés lundi 21 décembre 2009Date d'inscription 19 septembre 2018 Dernière intervention - 12 févr. 2012 à 04:48 - Dernière réponse : MrZoe 845 Messages postés lundi 21 décembre 2009Date d'inscription 19 septembre 2018 Dernière intervention
- 17 févr. 2012 à 08:19
Bonjour

je dois faire un programme qui lit un nombre entier represente des secondes et affiche selon le choix de l usager dans une liste déroulante le:
-nombre d'heure nombre en seconds, nombre de second(choix HH:MM:SS) ;

-nombre d'heure nombre en minute (choix HH : MM);
-nombre d'heure nombre en seconde (choix HH : SS);
-nombre de minute nombre, en seconde (choix MM : SS);

*Aucun nombre de plus que 30000 secondes ne doit pas être accepter (a valider)
*L'utilisation de la boucle While doit être utiliser.

J'ai aucun idée par ou commencer pour faire ma bouche while je programme sur Oracle jDeveloper

Alors si quel qu,un peut m'aider c'est serai grandement apprécier.


Merci d'avance
Afficher la suite 

Votre réponse

9 réponses

MrZoe 845 Messages postés lundi 21 décembre 2009Date d'inscription 19 septembre 2018 Dernière intervention - 12 févr. 2012 à 17:34
0
Merci
il y a quel qu un qui peut m aider comment mis prendre avec mon programme de boucle while ?

Merci
Commenter la réponse de MrZoe
MrZoe 845 Messages postés lundi 21 décembre 2009Date d'inscription 19 septembre 2018 Dernière intervention - 12 févr. 2012 à 21:38
0
Merci
quel qu connait la formule pour calculer
x secondes puis s'affiche le nombre d'heure et de minute et seconde ?
Commenter la réponse de MrZoe
cs_Julien39 6450 Messages postés mardi 8 mars 2005Date d'inscription 17 mai 2018 Dernière intervention - 13 févr. 2012 à 08:02
0
Merci
Bonjour,

Si je comprend bien tu as le nombre de secondes et tu dois le transformer en nombre de minutes, ou d'heures c'est ca ?

La formule, c'est faire une division par 60...
Commenter la réponse de cs_Julien39
Utilisateur anonyme - 13 févr. 2012 à 09:52
0
Merci
Salut,

Quelque chose comme:

int secondes = 7265;

String lHeure = ""; // contiendra HH:MM:SS
        
int heures = secondes /(60*60);
lHeure+= (heures<10?"0":"") + heures + ":"; // HH:

int reste = secondes % (60*60);

int minutes = reste / 60;
lHeure+= (minutes<10?"0":"") + minutes + ":"; // HH:MM:
         
int sec = reste % 60; // ce dernier reste correspond aux secondes

lHeure+= (sec<10?"0":"") + sec; // HH:MM:SS

System.out.println(
            "Temps HH:MM:SS correspondant à " + sec + " seconde" +(secondes>1?"s":"") + " " + lHeure);


Cordialement,


...\ Dan /...
Commenter la réponse de Utilisateur anonyme
MrZoe 845 Messages postés lundi 21 décembre 2009Date d'inscription 19 septembre 2018 Dernière intervention - 13 févr. 2012 à 16:49
0
Merci
est ce que mon programme est bon ou je usis dans le champ ? parce que je doit mettre une boucle while


private void jButton1_actionPerformed(ActionEvent e) {


int nombre ;
int resultat ;
int seconde = 3600 ;
int minute;
int heure;
final int Seconde_Minute = 60 ;
String textSaisi ;


textSaisi = jTextField1.getText();
nombre = Integer.parseInt(textSaisi) ;
// HH MM SS
if (jComboBox1.getSelectedIndex() == 0) {

while (nombre <= 30000)
{
// Calcule nombre en heure nombre en seconde
heure = nombre / 3600 ;
minute = (nombre / 3600) % 60;
seconde = nombre / 3600 ;
jTextField2.setText("Le nombre vaut: " + heure + "h" );
}


}
// HH : MM
else if (jComboBox1.getSelectedIndex() == 1) {

while ( nombre <= 30000)
{
// Calcule
heure = nombre / 3600 ;
minute = (nombre / 3600) % 60 ;
jTextField2.setText("Le nombre vaut: " + heure + "h" + minute + "m");


}



}
// HH:SS
else if (jComboBox1.getSelectedIndex () == 2 ) {

while (nombre <= 30000)

{
// calcule
heure = nombre / 3600 ;
seconde = nombre / 3600 ;
jTextField2.setText("Le nombre vaut " + heure + "h" + seconde + "s") ;
}




}

// MM:SS
else if (jComboBox1.getSelectedIndex () == 3 ) {
while (nombre <= 30000)

{
// calcule
minute = (nombre / 3600) % 60 ;
seconde = nombre / 3600 ;
jTextField2.setText("Le nombre vaut " + minute + "m" + seconde + "s") ;
}







}

}
}
Commenter la réponse de MrZoe
Utilisateur anonyme - 14 févr. 2012 à 01:53
0
Merci
Re,

Dans ton exemple ci-dessus, les calculs sont erronés.
Je te donne une solution en émulation sans JTextFied le plus important étant les calculs (bien que n'étant que de l'arithmétique) ...

int nombre = 0; 
         int secondes = 0; 
         int minutes = 0; 
         int heures = 0;
         int reste = 0;
         boolean autre = true;
         String prompt = "";
         String prompt1 = "Entrer un nombre de secondes < 30001 ou bien 0 pour terminer";
         String prompt2 = "Nombre de secondes incorrect " + prompt1;
         String textSaisi;
         Scanner clavier = new Scanner(System.in);
      
      /*   
      Choix 0: HH:MM:SS
      Choix 1: HH:MM
      Choix 2: HH:SS
      Choix 3: MM:SS
      	HH est identique dans les cas 0,1 et 2
      	MM dans les cas 1 et 2 mais pas forcément dans le cas 3 où il doit être calculé
      	SS pas forcément dans les cas 0, 2 et 3 où ils doivent être calculés
      */
      	
         prompt = prompt1;
         
         while (autre) 
         {
            System.out.print("\n" + prompt + ": ");
            nombre = clavier.nextInt();
            System.out.println("\nVous avez saisi " + nombre);
            if(nombre == 0) 
               break;
            if(nombre > 30000)
            {
               prompt = prompt2;
            }
            else
            {
               int choixCombo = 0;
            
            // Choix 0 : HH:MM:SS
            
            //if (jComboBox1.getSelectedIndex() == 0) {
               if(choixCombo == 0) {
               
                  System.out.println("CHOIX = 0");
               
               // Calcul nombre en heure nombre en seconde 
                  heures = nombre / 3600 ;
                  reste = nombre % 3600;
                  minutes = reste / 60;
                  secondes = reste % 60; // ce dernier reste correspond aux secondes
               //minute = (nombre / 3600) % 60; 
               //seconde = nombre / 3600 ; 
               //jTextField2.setText("Le nombre vaut: " + heure + "h" );
                  System.out.println("Le nombre " + nombre + " vaut: " + heures + " h "
                     + minutes + " m " + secondes + " s");
               choixCombo = 1;
               
               }
            // Choix 1: HH:MM 
            //else if (jComboBox1.getSelectedIndex() == 1) { 
            
               if(choixCombo == 1) {
               
                  System.out.println("CHOIX = 1");
               
               // Pas de calcul à faire : heures et minutes sont les mêmes
               //heures = nombre / 3600 ;
               //reste = nombre % 3600;
               //minutes = reste / 60;
               //secondes = reste % 60; // ce dernier reste correspond aux secondes qu'on ne veut pas
               //jTextField2.setText("Le nombre vaut: " + heure + "h" + minute + "m"); 
                  System.out.println("Le nombre " + nombre + " vaut: " + heures + " h " + minutes + " m");
               choixCombo = 2;
               
               
               }
            // Choix 2: HH:SS 
            //else if (jComboBox1.getSelectedIndex () == 2 ) {
               if(choixCombo == 2) {
               
                  System.out.println("CHOIX = 2");
               
               // calcul
               //heures = nombre / 3600 ; 
                  secondes = nombre % 3600 ; 
               //jTextField2.setText("Le nombre vaut " + heure + "h" + seconde + "s") ;
                  System.out.println("Le nombre " + nombre + " vaut: " + heures + " h " + secondes + " s");
               choixCombo = 3;
               
               
               } 
            // Choix 3: MM:SS 
            //else if (jComboBox1.getSelectedIndex () == 3 ) {
               if(choixCombo == 3) {
               
                  System.out.println("CHOIX = 3");
               
               // calcul 
                  minutes = nombre / 60; 
                  secondes = nombre % 60; 
               //jTextField2.setText("Le nombre vaut " + minute + "m" + seconde + "s") ;
                  System.out.println("Le nombre " + nombre + " vaut: "  + minutes + " m " + secondes + " s");
               }
            }
         } // fin while


Cordialement,


...\ Dan /...
Commenter la réponse de Utilisateur anonyme
MrZoe 845 Messages postés lundi 21 décembre 2009Date d'inscription 19 septembre 2018 Dernière intervention - 15 févr. 2012 à 03:34
0
Merci
@Danimo Merci de me répondre je v=doit valider des le debu de mon programme avec un while?

je programme sur oracle développer j'etais hors sujet avec tout ses while que jai mis :( prompt veut dire quoi ?
Commenter la réponse de MrZoe
MrZoe 845 Messages postés lundi 21 décembre 2009Date d'inscription 19 septembre 2018 Dernière intervention - 17 févr. 2012 à 08:19
0
Merci
mon programme marche comme un charme :)
Commenter la réponse de MrZoe
Utilisateur anonyme - 13 févr. 2012 à 10:04
-2
Merci
Désolé, je me suis trompé de variable secondes !!!

Remplacer:
System.out.println(
            "Temps HH:MM:SS correspondant à " + sec + " seconde" +(secondes>1?"s":"") + " " + lHeure);


par:
System.out.println(
            "Temps HH:MM:SS correspondant à " + secondes + " seconde" +(secondes>1?"s":"") + " " + lHeure);


...\ Dan /...
Commenter la réponse de Utilisateur anonyme

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.