Programme qui lit un nombre entiet represente des secondes

Résolu
MrZoe Messages postés 815 Date d'inscription lundi 21 décembre 2009 Statut Membre Dernière intervention 19 septembre 2018 - 12 févr. 2012 à 04:48
MrZoe Messages postés 815 Date d'inscription lundi 21 décembre 2009 Statut Membre Dernière intervention 19 septembre 2018 - 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

9 réponses

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

Merci
0
MrZoe Messages postés 815 Date d'inscription lundi 21 décembre 2009 Statut Membre Dernière intervention 19 septembre 2018
12 févr. 2012 à 21:38
quel qu connait la formule pour calculer
x secondes puis s'affiche le nombre d'heure et de minute et seconde ?
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 369
13 févr. 2012 à 08:02
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...
0
Utilisateur anonyme
13 févr. 2012 à 09:52
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 /...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
MrZoe Messages postés 815 Date d'inscription lundi 21 décembre 2009 Statut Membre Dernière intervention 19 septembre 2018
13 févr. 2012 à 16:49
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") ;
}







}

}
}
0
Utilisateur anonyme
14 févr. 2012 à 01:53
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 /...
0
MrZoe Messages postés 815 Date d'inscription lundi 21 décembre 2009 Statut Membre Dernière intervention 19 septembre 2018
15 févr. 2012 à 03:34
@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 ?
0
MrZoe Messages postés 815 Date d'inscription lundi 21 décembre 2009 Statut Membre Dernière intervention 19 septembre 2018
17 févr. 2012 à 08:19
mon programme marche comme un charme :)
0
Utilisateur anonyme
13 févr. 2012 à 10:04
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 /...
-2
Rejoignez-nous