[RESOLVIDO] Classe Calendar

4 respostas
P

Como faço para que na função Idade, seja impresso a idade em dias???

package testeString;

import java.util.Calendar;

public class TesteString {
    
    public static void BomDia(String nome, String sobrenome) {
        System.out.println("Bom dia " + nome + " " +sobrenome + ".");
    }

    public static void Idade(String nome, Calendar dtNasc) {
        dtNasc = Calendar.getInstance();
        System.out.println(nome + ", sua idade é "+ dtNasc.getTime() + " dias");
    }

    public static void teste(String nome, String sobrenome, Calendar dtNasc) {
        BomDia (nome, sobrenome);
        Idade(nome, dtNasc);
    }

    public static void main(String[] args) {
        Calendar dtNasc = Calendar.getInstance();
        dtNasc.set(Calendar.MONTH, 07);
        dtNasc.set(Calendar.YEAR, 1985);
        
        teste("João","Silva", dtNasc);
    }
}

4 Respostas

marciobarroso

Para começar, você deveria antes de criar o tópico pesquisar … por baixo achei pelo menos uns 6 posts com assuntos parecidos e inclusive com exemplos de como fazer o que você precisa.




Boa sorte no seu exercício …

P

Obrigado

P

Esses links não me ajudaram em quase nada! Porque falam muito da classe DATE e pouco da CALENDAR

Mas deixarei a solução para poder ajudar alguém que precisar.

E obrigado assim mesmo!

package testeString;

import java.util.Calendar;

public class TesteString {
    
    public static void BomDia(String nome, String sobrenome) {
        System.out.println("Bom dia " + nome + " " +sobrenome + ".");
    }

    public static void Idade(String nome, Calendar dtNasc) {
        Calendar anoAtual = Calendar.getInstance();
        anoAtual.get(Calendar.YEAR);
        long idade = (anoAtual.get(Calendar.YEAR) - dtNasc.get(Calendar.YEAR)) * 365;
        System.out.println(nome + ", sua idade é "+ idade + " dias");
    }

    public static void teste(String nome, String sobrenome, Calendar dtNasc) {
        BomDia (nome, sobrenome);
        Idade(nome, dtNasc);
    }

    public static void main(String[] args) {
        Calendar dtNasc = Calendar.getInstance();
        
        dtNasc.set(Calendar.DAY_OF_MONTH, 07);
        dtNasc.set(Calendar.MONTH, 07);
        dtNasc.set(Calendar.YEAR, 1985);
        
        teste("João","Silva", dtNasc);
    }
}
P

Corrigindo mais uma vez e dessa vez sim funcionando corretamente, mesmo depois do teste de mesa.

public static void calcularIdade(String nome, Calendar dtNasc) {
        Calendar dataAtual = Calendar.getInstance();

        long diaMilissegundos = 86400000;

        long idade = ((dataAtual.getTimeInMillis() - dtNasc.getTimeInMillis()) / diaMilissegundos) / 365;

        System.out.println(nome + ", sua idade é " + idade + " ano(s).");
    }
Criado 24 de outubro de 2012
Ultima resposta 25 de out. de 2012
Respostas 4
Participantes 2