Logica Na estação

A GregorianCalendar herda da classe Calendar, ou implementa ela, não sei direito… ela tem mais funções que a Date.

E no main eu faço a inicialização das estações e depois faço um testezinho rápido…

Se no caso o usuario digitasse uma data e um mes…
Ai a partir da leitura do dados que ele informou eu apresentaria a estação juntamente com a data e o mes que ele digitou…

Estava pensando em utilizar
Import java.util.Scanner; ( que eu conheço)

                           no main criar o objeto
                            
                           Scanner input = new Scanner(System.in);

depois como ficaria as condições de enviar os set ou get para validar a estação?

import java.util.Scanner;
public class EstacaoInicio {

Scanner input = new Scanner(System.in);

//variaveis
private int ano;
private int mes;
private int dia;
//metodo construtor
public EstacaoInicio(){

}
//get e set
public int getAno() {
	return ano;
}
public void setAno(int ano) {
	this.ano = ano;
}
public int getDia() {
	return dia;
}
public void setDia(int dia) {
	this.dia = dia;
}
public int getMes() {
	return mes;
}
public void setMes(int mes) {
	this.mes = mes;
}
//metodos de entrada de dados
public void entraData(){
	do{
	System.out.println("Digite o dia");
    dia=input.nextInt();
	}while (dia>31);
}
public void entraMes(){
	do{
	System.out.println("Digite o mes");
	mes=input.nextInt();
	}while (mes>12);
	}
public void entraAno(){
	System.out.println("Entre com o ano");
	ano=input.nextInt();
}
public void informaEstacao(){
	//outono e de 20 de 3 a 20 de 6
	//inverno de 21 de 6 a  22 de 9
	//primavera 23 do 9 a 20 do 12
	//verão de 21 do 12 a 19 do 3
	if ( (dia >=20 && mes == 12) || (mes <3) || ( dia <20 && mes == 3)){
		System.out.println("É verão");
		
	}
	else if(( dia>=20 && mes ==3) || (mes <6 ) || (dia <20 && mes == 6)){
		System.out.println("Outono");
	 }
	else if((dia >=20 && mes == 6) || (mes <9) || (dia <20 && mes == 9)){
		System.out.println("Inverno");
      }
	else {
		System.out.println("Primavera");
	}
}

}

public class TestaEstacao {
public static void main(String[] args) {
EstacaoInicio estacao = new EstacaoInicio();
estacao.entraData();
estacao.entraMes();
estacao.entraAno();
estacao.informaEstacao();

}

}

Consegui resolver!

Só uma dúvida, você declarou um construtor vazio, não seria mais fácil não escreve-lo e deixar o construtor padrão?

Sim Rafael, daria na mesma. Creio que ele tenha escrito apenas para facilitar a visualização.

Quanto ao Gregorian, nunca utilizei, sempre utilizo apenas Calendar. Dei uma pesquisa e vi que a GregorianCalendar é uma SubClasse da Calendar, mas não consegui visualizar qual a real vantagem de utilizá-la ao invés da Calendar.

[quote=thundercas]

Quanto ao Gregorian, nunca utilizei, sempre utilizo apenas Calendar. Dei uma pesquisa e vi que a GregorianCalendar é uma SubClasse da Calendar, mas não consegui visualizar qual a real vantagem de utilizá-la ao invés da Calendar.[/quote]

:oops: Usei o GregorianCalendar apenas porque a classe Calendar é abstrata, daí eu substituí todos os Date por GregorianCalendar… Poderia ter utilizado o GregorianCalendar apenas na hora de testar:

 Calendar c = new GregorianCalendar();

Então acho q a logica fikou boa…

Naum entendi o CAlendar…

Fiz o padrão para ver melhor interpretação…

ABraço

O que importa é que tu entendeu. Agora que tu viu a lógica e entendeu um pouco de Java, bem-vindo ao GUJ e ao Mundo do Java!

O Calendar, junto com a Date, São as classes que tratam as datas no Java. E acredite, elas fazem milagres…

Blz…Entendi a logica foram umas horas bem aplicadas, digem q a pratica leva a perfeição…

Obrigado pela ajuda ai e até breve!

abraço!

E se o construtor padrão mudar em uma possivel atualização do JAVA??

Meus programas param de rodar?

Caso o java não fornesa o construtor padrão!

gostaria de ver o esse código da estação completo, tem como postar?

Tem sim kra…

/*POr
Clovis da Costa Mandoline Bento
CLovisCMB
*/

import java.util.Scanner;
public class EstacaoInicio {

Scanner input = new Scanner(System.in);

//variaveis
private int ano;
private int mes;
private int dia;
//metodo construtor
public EstacaoInicio(){

}
//get e set
public int getAno() {
	return ano;
}
public void setAno(int ano) {
	this.ano = ano;
}
public int getDia() {
	return dia;
}
public void setDia(int dia) {
	this.dia = dia;
}
public int getMes() {
	return mes;
}
public void setMes(int mes) {
	this.mes = mes;
}
//metodos de entrada de dados
public void entraData(){
	do{
	System.out.println("Digite o dia");
    dia=input.nextInt();
	}while (dia>31);
}
public void entraMes(){
	do{
	System.out.println("Digite o mes");
	}while(mes>12);
	mes=input.nextInt();
        while((mes == 2 && dia > 29) || (mes > 12 || dia>31)){
            System.out.println("Dia invalido no mes de Fevereiro");      
        	System.out.println("Digite o mes");
                    mes=input.nextInt();
                 System.out.println("Digite o dia");
                  dia=input.nextInt();
                  }
                  }
	
public void entraAno(){
	System.out.println("Entre com o ano");
	ano=input.nextInt();
}
public void informaEstacao(){
	//outono e de 20 de 3 a 20 de 6
	//inverno de 21 de 6 a  22 de 9
	//primavera 23 do 9 a 20 do 12
	//verão de 21 do 12 a 19 do 3
	if ( (dia >=20 && mes == 12) || (mes <3) || ( dia <20 && mes == 3)){
		System.out.println("É verão - " + dia +"/"+ mes+"/"+ ano);
		
	}
	else if(( dia>=20 && mes ==3) || (mes <6 ) || (dia <20 && mes == 6)){
		System.out.println("Outono-"  + dia+"/"+ mes +"/"+ ano);
	 }
	else if((dia >=20 && mes == 6) || (mes <9) || (dia <20 && mes == 9)){
		System.out.println("Inverno - " + dia +"/"+ mes+"/"+ ano);
      }
	else {
		System.out.println("Primavera-" + dia +"/"+ mes+"/"+ ano);
	}
}

}

/*
Classe Testa
*/

public class TestaEstacao {
public static void main(String[] args) {
EstacaoInicio estacao = new EstacaoInicio();
estacao.entraData();
estacao.entraMes();
estacao.entraAno();
estacao.informaEstacao();

}

}

vlw cara, testei aqui funciono blz…

Que isso kra…pressisando tamo ae

flws