Mostrar uma quantia de segundos em Dias, Hr, Mim e Seg usando a classe Calendar

package ExeDois;

import java.text.*;
import java.util.*;
import javax.swing.*;

public class Principal {

    public static void main(String[] args) {

        SimpleDateFormat SDF = new SimpleDateFormat("D 'Dias,' H 'Hr,' m 'Min,' s 'Seg'");

        int Seg = Integer.parseInt(JOptionPane.showInputDialog(null,"Informe a Qtd de segundos:","Converte",JOptionPane.QUESTION_MESSAGE));
        
        JOptionPane.showMessageDialog(null,"A quantidade de segundos é igual à: "+SDF.format(Converte(Seg)),"Converte",JOptionPane.INFORMATION_MESSAGE);
    }

    private static Date Converte(int Seg) {

        Calendar Cal = Calendar.getInstance();

        Cal.setTimeInMillis(Seg*1000);

        return Cal.getTime();
    }
}

Galera, tenho este código fonte ai de cima, e a finalidade dele é que quando alguem coloque uma determinada quantia em segundos, ele converta isso em dias, horas e segudnos dependendo da quantidade informada.

por Ex:

10800 seg = a 3Hr

logo, seu eu digitasse isso ali ele deveria informar: 0 Dias, 3 Hr, 0 Mim, 0 Seg (conforme a Pattern ali no Format).

Gostaria de uma ajuda pois isso nao ocorre! ele mostra apenas assim 1 Dias, 0 Hr, 0 Mim, 0 Seg, e se eu informar 3600Seg que seriam 1hr ele mostra 365 Dias, 22 Hr, 0 Mim, 0 Seg

ou seja! ele nao esta convertendo! eu sei fazer isso fazendo a conta e pegando os valores que sobram… mas quero fazer com a classe calendar…

Alguem pode ajudar a arrumar o código?

grato! []'s

A classe Calendar não é adequada para armazenar quantidade de tempo (400 horas, 12 minutos e 30 segundos), só instantes no tempo (ou seja, 28 de fevereiro de 2009, 14 horas, 12 minutos e 20 segundos).
Faça as contas, ou então use o Joda-Time, que tem o conceito de “intervalo de tempo”.

valeu pela ajuda!

mas nao teria como corrigir este erro entao, tipo, nao seria um erro seria uma limitação da classe calendar?

Pois é, java.util.Date e java.util.Calendar têm várias limitações. Há uma proposta para incluir no Java 8 (não vai dar tempo para o Java 7) uma API que é inspirada no Joda-Time, e construída pelos mesmos autores.

Veja:

http://jcp.org/en/jsr/detail?id=310

Curiosidade:

Um dos proponentes da JSR-310 é um famoso integrante do GUJ ( Michael Nascimento Santos ).

blz cara!

valeu!

vou fazer a conta mesmo… :wink: