Jump to content
LuisM

Problema em validar data

Recommended Posts

LuisM

Boas noites,

Estou com alguns probleminhas em validar data, ou seja, em validar anos bissextos.

No codigo fiz switch para ver se a data do ano bissexto e valido, mas ele nao esta a entrar no switch.

O que estou a fazer mal...

Variavies Globais

public class Variaveisglobais {
public static int fiscal, cont = 0;
public static int d,m,a;
public static boolean repetir = true;
ArrayList<Artista> artista = new ArrayList<Artista>();
ArrayList<Agente> agente = new ArrayList<Agente>();
ArrayList<Evento> evento = new ArrayList<Evento>();
}

Eventos

public class Evento {
private String nome;
public int dia;
public int mes;
public int ano;
//receitas
public Evento(String nome, int dia, int mes, int ano) {
 this.nome = nome;
 this.dia = dia;
 this.mes=mes;
 this.ano=ano;
}
public void setNome(String nome) {
 this.nome = nome;
}
public void setDia(int dia) {
 this.dia = dia;
}
public void setMes(int mes) {
 this.mes = mes;
}
public void setAno(int ano) {
 this.ano = ano;
}
public String getNome() {
 return nome;
}
public int getDia() {
 return dia;
}
public int getMes() {
 return mes;
}
public int getAno() {
 return ano;
}

@Override
public String toString() {
 return "Nome: " + nome + " " + " Data da realizacao: " + dia + "/" + mes + "/" + ano;
}
}

codigo fonte

public class Basededadoseventos extends Variaveisglobais {
public boolean anoBissexto() {
 return ((a / 4 == 0) && (a / 100 != 0) || (a / 400 == 0));
}
public boolean validarData() {
 switch (m) {
	 case 4:
	 case 6:
	 case 9:
	 case 11:
		 if (d > 30) {
			 return false;
		 }
		 break;
	 case 1:
	 case 3:
	 case 5:
	 case 7:
	 case 8:
	 case 10:
	 case 12:
		 if (d > 31) {
			 return false;
		 }
		 break;
	 case 2:
		 if (anoBissexto() && (d > 29) || !anoBissexto() && (d > 28));
		 break;
	 default:
		 JOptionPane.showMessageDialog(null, "Data invalido. Introduza a data correcto...");
		 break;
 }
 return true;
}
public void addEvento(Evento e) {
 Evento evt1;
 String nome = JOptionPane.showInputDialog("Introduza o nome do evento");
 //ve se consigo colocar a mascara
 do {
	 do {
		 String dia = JOptionPane.showInputDialog("Introduza o dia do evento");
		 d = Integer.parseInt(dia);
	 } while (d < 1 || d > 31);
	 do {
		 String mes = JOptionPane.showInputDialog("Introduza o mes do evento");
		 m = Integer.parseInt(mes);
	 } while (m < 1 || m > 12);
	 do {
		 String ano = JOptionPane.showInputDialog("Introduza o ano do evento");
		 a = Integer.parseInt(ano);
	 } while (a < 1900 || a > 9999);
 } while (!validarData());
 // colocar proteçao de datas dos dias e de letras
 evt1 = new Evento(nome, d, m, a);
 evento.add(evt1);
 JOptionPane.showMessageDialog(null, "Evento criado com sucesso...");
}
}

Edited by apocsantos
geshi

Share this post


Link to post
Share on other sites
Primordius

Só uma coisa, tudo o que seja atributos mete SEMPRE private, e nao tens que usar o this.nome=nome, alias sempre que definires um atributo novo tem atenção em definilo com este formato: private int _dia; private String _nome; assim nos set's basta fazeres public void setNome(String nome){ _nome=nome;}, nao é obrigatorio fazeres assim como é obvio, mas... é assim que a malta programa toda em java, pelo menos foi isto que o meu professor me disse xD

E evita usar atributos static, tudo o que precisas de fazer (ou quase tudo) consegues fazelo sem que o atributo seja static.

Edited by Primordius

Share this post


Link to post
Share on other sites
Primordius

peço desculpa então.... só disse o que me ensinaram ;) , sempre me disseram que atributos era com o _(sendo estes variaveis ou constantes), e variaveis dentro de metodos eram sem o _.

sim eu concordo cnt em relação ao static, se ele não tivesse propósito nenhum não existia, mas eu por exemplo fiz ainda a pouco tempo um projecto, ainda grandinho e o unico metodo static era a main xD

Share this post


Link to post
Share on other sites
HappyHippyHippo

sim eu concordo cnt em relação ao static, se ele não tivesse propósito nenhum não existia, mas eu por exemplo fiz ainda a pouco tempo um projecto, ainda grandinho e o unico metodo static era a main xD

queres especificar o quanto grande era ?

é que se fosse realmente grande, a probabilidade de uso do static aumenta, basta pensar em singletons


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
Primordius

O ser grande varia de pessoa para pessoa, para mim era grande pois foi o primeiro projecto em java que fiz, tem 22 classes, 2 menus(cada um com menus dentro de menus xD), com demasiados comandos

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.