Newsgroup: it.comp.java
Titolo: problema sulla creazione di un programma java

salve,scusate per i due messaggi che ho postato in poco tempo,ma ho un
altro problema.Stavo facendo una console.L'utente deve inserire il tempo
in secondi,e la console ti restituisce il tempo espresso prima in ore,poi
in minuti,e infine in secondi.Secondo voi va bene cosě?per funzionare
va,ma il risultato non č molto carino.Ad esempio per 360 secondi mette che
equivalgono 0.1211111 ore ma non sarebbe piů bello invece se il programma
scrivesse 0 ore e 6 minuti?o il ragionamento non č sensato perchč tanto
poi compare una finestra col tempo espresso in minuti??voi che fareste?
Ah,secondo voi dovrei dichiarare le variabili ,tipo che in un'ora ci sono
3600 secondi?io ho diviso il tempo in secondi in input per 3600 per
trovarmi il corrispondente in ore,ma non ho ritenuto necessario creare una
variabile di tipo intero,chiamarla ad esempio SecondiInUnOra,dargli il
valore 3600 e poi dividere il tempo in entrata per la variabile
SecondiInUnOra.Voi che fareste?
ecco il codice del programma:
import javax.swing.* ;
public class OreMinutiSecondi{
        public static void main (String args[]){
            String input = new String();
            input=JOptionPane.showInputDialog("Inserire il tempo in
secondi");
            float secondi = Float.parseFloat(input);
            float ore = secondi/3600;  //qui nn ho dichiarato nessuna var
con valore 3600,ho diviso semplicemente.č giusto?
            float minuti = secondi/60;
            float secondi2= secondi;
            JOptionPane.showMessageDialog(null,"Ecco il tempo espresso in
ore " + ore);
            JOptionPane.showMessageDialog(null,"Ecco il tempo espresso in
minuti " + minuti);
            JOptionPane.showMessageDialog(null,"Ecco il tempo espresso in
secondi " + secondi);
            System.exit(0);
scusate per l'incasinatura del post!
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

se metti che ore e' uguale a secondi/3600 lui non sta a guardare se e'
0,qualcosa.
Perche' il risultato sia espresso come 0 ore e 6 minuti dovresti o fare
dei controlli sul risultato (con degli if ad esempio) o considerare
solo l'intero e scartare tutti i numero dopo la virgola (facendo del
casting o utilizzando una funzione di java fatta apposta per dichiarare
quanti numeri dopo la virgola considerare.. ma della quale non ricordo
il nome.. nel sito della sun c'e' la documentazione e li' c'e' pure
quella funzione).
Il punto pero' e' che se vuoi esprimere 360 secondi in ore... il
risultato non e' 0 ma 0,qualcosa. Dipende da quanto preciso vuoi
essere.
io dichiarerei le variabili per questioni di facilita' nel cambiare il
dato.
Spiego meglio:
se volessi passare dal sapere quanti secondi ci sono in un'ora a quanti
minuti ci sono in un'ora, dichiarando le variabili dovresti cambiare
solo quelle... altrimenti dovresti cambiare tutto.

 scusate per l'incasinatura del post!
Magari comincia ad usare gli interi piuttosto che i float, sia per una
questione di precisione che per la velocità di elaborazione.
Vuoi calcolare i singoli componenti dell'intervallo di tempo specificato, e
hai deciso di precalcolare tutto in anticipo. Molto bene. Ti converrebbe
però usare l'operatore di divisione intera, e per le operazioni successive
puoi considerare il resto della divisione precedente. Esempio:
public class TestClass {
   public static void main(String[] args) {
      int inputsecondi=32768;
      int secondi;
      int minuti;
      int ore;
 
      secondi=inputsecondi;
 
      minuti=secondi/60;   //Divisione intera
      secondi%=60;         //resto della precedente divisione
                           //(equivale a secondi=secondi%60)
      ore=minuti/60;       //Idem per trasformare i minuti in ore
      minuti%=60;
      System.out.println(inputsecondi + " secondi equivalgono a");
      System.out.println(ore + " ore");
      System.out.println(minuti + " minuti");
      System.out.println(secondi + " secondi");
   }
}
-- 
Fermiamo Scientology prima che sia troppo tardi!!!
http://xenu.com-it.net
 - 
http://www.xenu.net
(per rispondere personalmente leva IlDitoDalCulo)