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…
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