Olá pessoal!
Estou tendo um probleminha com a lógica para se converter milissegundos em hora, minuto e segundo.
Sei que dá para pegar a hora bonitinha do sistema mas como preciso contar o tempo de um certo período que pode ser mais de um dia, então tive que usar aquele negócinho de pegar a Qtde de milissegundo desde 1970.
Vou colocar o código fonte para vocês analizarem, o código pode parecer um pouco grande mas é por causa da janelinha, a lógica mesmo está no metódo que se chama conversao.
[code]import java.awt.;
import java.awt.event.;
import java.io.IOException;
import javax.swing.;
import javax.swing.event.;
public class teste extends JPanel {
private JTextField tfMilissegundos;
private JButton btCalcular;
public teste() {
//construct components
tfMilissegundos = new JTextField (5);
btCalcular = new JButton ("Calcular");
//adjust size and set layout
setPreferredSize (new Dimension (220, 88));
setLayout (null);
//add components
add (tfMilissegundos);
add (btCalcular);
//set component bounds (only needed by Absolute Positioning)
tfMilissegundos.setBounds (15, 15, 190, 25);
btCalcular.setBounds (60, 45, 100, 25);
btCalcular.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
conversao();
}
});
tfMilissegundos.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
conversao();
}
});
}
public void conversao()
{
int s,m,h;
long ms,tempoMilissegundos = Long.parseLong(tfMilissegundos.getText());
String tempoPronto;
s = (int)tempoMilissegundos/1000;
ms = (int)(tempoMilissegundos/1000-s);
m = (int) s/60;
s = (int)(s/60-m);
h = (int)m/60;
m = (int)m/60-h;
System.out.println(h+"\n"+m+"\n"+s+"\n"+ms+"\nTempo total (ms): "+tempoMilissegundos);
tempoPronto = String.valueOf(h)+" : "+String.valueOf(m).substring(1)+" : "+String.valueOf(s).substring(1);
JOptionPane.showMessageDialog(null," Hora Minutos Segundos\nTempo: "+tempoPronto);
}
public static void main (String[] args) {
JFrame frame = new JFrame ("Milissegundos");
frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add (new teste());
frame.setLocationRelativeTo(null);
frame.pack();
frame.setVisible (true);
}
}
[/code]
OBS: 1 minuto == 3600000 milissegundos
Gustavo…
Valeu gente! :thumbup: