Pessoal,
Sou novo aqui no forum e estou precisando muito da ajuda de vocês. Tenho que fazer um exercicio simples usando algoritmo para entrar com uma data de nascimento (dd/mm/aaaa) de uma pessoa e uma data atual (dd/mm/aaaa). Importante é que não é necessário usar uma mascara de data apenas quero entrar com os valores e apresentar de forma simples. O sistema deve calcular se esta pessoa é maior de idade. Parece simples mas não deve ser usado nenhum recurso sofisticado da linguagem como classe e objetos. Só vale usando estrutura de decisão simples, composta ou encadeada.
Até o momento consegui fazer apenas o calculo para achar a idade.
[code]import javax.swing.*;
class Exercicio_12
{
public static void main (String args [])
{
//declaração de variaveis
int ano_atual, ano_nascimento, calculo;
//coleta de dados
ano_atual = Integer.parseInt(JOptionPane.showInputDialog ("Digite o ano atual:"));
ano_nascimento = Integer.parseInt(JOptionPane.showInputDialog ("Digite o ano de nascimento:"));
//processamento de dados
if (ano_atual < ano_nascimento)
{
calculo = (ano_atual - ano_nascimento);
JOptionPane.showMessageDialog (null, "O ano de nascimento desta pessoa é: " +calculo);
}
else
{
calculo = (ano_nascimento - ano_atual);
JOptionPane.showMessageDialog (null, "O ano de nascimento desta pessoa é: " +calculo);
}
System.exit(0);
}
}[/code]
Use as tas code e /code (entre []) para deixar seu código mais legivel (a identação fui eu que fiz…):
import javax.swing.*;
class Exercicio_12
{
public static void main (String args [])
{
//declaração de variaveis
int ano_atual, ano_nascimento, calculo;
//coleta de dados
ano_atual = Integer.parseInt(JOptionPane.showInputDialog ("Digite o ano atual:"));
ano_nascimento = Integer.parseInt(JOptionPane.showInputDialog ("Digite o ano de nascimento:"));
//processamento de dados
if (ano_atual < ano_nascimento)
{
calculo = (ano_atual - ano_nascimento);
JOptionPane.showMessageDialog (null, "O ano de nascimento desta pessoa é: " +calculo);
}
else
{
calculo = (ano_nascimento - ano_atual);
JOptionPane.showMessageDialog (null, "O ano de nascimento desta pessoa é: " +calculo);
}
System.exit(0);
}
}
Tu pode fazer o seguinte:
idade = anoAtual - anoNascimento;
if(mesAtual<mesNascimento){
idade--;
}else if(mesAtual==mesNascimento && diaAtual<diaNascimento){
idade--;
}
JOptionPane.showMessageDialog (null, "O ano de nascimento desta pessoa é: " +idade);
PS: É só a lógica, se tiver algo errado desculpa pois posso estar inebriado pelos efeitos do alcool… ![:slight_smile: :slight_smile:](https://www.guj.com.br/images/emoji/twitter/slight_smile.png?v=9)
Vou tentar usar o seu código, mas gostaria de entende-lo. Inicialmente você considerou que a pessoa usou o valor do ano atual subtraindo do ano de nascimento tudo bem isso eu consegui, mas no meu código ele simplesmente não entra na condição para resultar o exemplo: 2011 - 1959 = 52. O meu código sempre entra na condição do valor negativo ou seja o programa está rodando sempre resultando em -52.
import javax.swing.*;
class Exercicio_12
{
public static void main (String args [])
{
//declaração de variaveis
int ano_atual, ano_nascimento, calculo;
//coleta de dados
ano_atual = Integer.parseInt(JOptionPane.showInputDialog ("Digite o ano atual:"));
ano_nascimento = Integer.parseInt(JOptionPane.showInputDialog ("Digite o ano de nascimento:"));
//processamento de dados
if (ano_atual < ano_nascimento)
{
calculo = (ano_atual - ano_nascimento);
JOptionPane.showMessageDialog (null, "O ano de nascimento desta pessoa é: " +calculo);
if (calculo < 18)
{
JOptionPane.showMessageDialog (null, "Você é menor de idade e tem: " +calculo +" anos");
}
}
else
{
calculo = (ano_nascimento - ano_atual);
JOptionPane.showMessageDialog (null, "O ano de nascimento desta pessoa é: " +calculo);
if (calculo > 18)
{
JOptionPane.showMessageDialog (null, "Você é maior de idade e tem: " +calculo +" anos");
}
}
System.exit(0);
}
}
Olá, bem-vindo ao GUJ.
Por favor, ao postar tópicos, NÃO DEIXE O TÍTULO EM LETRAS MAIÚSCULAS.
Também evite escrever coisas como “AJUDA:”, “SOCORRO” ou “URGENTE”.
Afinal, é obvio que você quer ajuda, e é falta de educação solicitar urgência.
Além disso, ao postar código, use a tag code para deixa-lo formatado, como descrito aqui:
Entendi ViniGodoy,
Estou aprendendo a usar o forum e nos próximos posts irei respeitar as regras. Obrigado.
Rafael
Para fazer seu exercício você precisa fazer algumas contas. Procurando por “fórmula diferença entre duas datas” na Internet achei isto:
http://inf.ufrgs.br/~cabral/Dia_do_Seculo.html
Pessoal,
Gostaria de agradecer aos colegas entanglement e fernandosavio que me ajudaram a resolver o problema. Abaixo segue corretamente o tratamento em Java.
[code]import javax.swing.*;
class Exercicio_12
{
public static void main (String args [])
{
//declaração de variaveis
int ano_atual, mes_atual, ano_nascimento, mes_nascimento, idade;
//coleta de dados
ano_atual = Integer.parseInt(JOptionPane.showInputDialog ("Digite o ano atual:"));
mes_atual = Integer.parseInt(JOptionPane.showInputDialog ("Digite o mes atual:"));
ano_nascimento = Integer.parseInt(JOptionPane.showInputDialog ("Digite o ano de nascimento:"));
mes_nascimento = Integer.parseInt(JOptionPane.showInputDialog ("Digite o mes de nascimento:"));
//processamento de dados
idade = ano_atual - ano_nascimento;
if (mes_nascimento >= mes_atual)
{
JOptionPane.showMessageDialog (null, "Sua idade é: " +idade +" anos.");
}
else
{
idade = idade - 1;
JOptionPane.showMessageDialog (null, "Sua idade é: " +idade +" anos.");
}
System.exit(0);
}
}[/code]