Oi bom dia pessoal,
Gostaria de uma ajuda de vcs … Preciso fazer isso :
String “01/01/2010” ----> int dia int mes int ano;
sei que tenho que usar uma funcao que muda String p int … e uma funcao de separacao …
agora quais ?
Oi bom dia pessoal,
Gostaria de uma ajuda de vcs … Preciso fazer isso :
String “01/01/2010” ----> int dia int mes int ano;
sei que tenho que usar uma funcao que muda String p int … e uma funcao de separacao …
agora quais ?
Método que “quebra a String” -> split(String)
Método estático que converte de String para int -> Integer.parseInt(String)
Obs: o método split(String) recebe uma expressão regular, e não uma String literal.
public class Data
{
private int dia;
private int mes;
private int ano;
public void data(String data)
{
dataValida(data);
}
private void dataValida(String data)
{
System.out.println(data);
}
}
public class TesteData
{
public static void main(String[] args)
{
Data x = new Data();
x.data("08/03/2012");
}
}
eu preciso tratar essa String… o que eu devo fazer primeiro ??? =\
Você leu o que os métodos que eu indiquei acima fazem ?
li sim, olha só o que já consegui, só que a saída ainda não é a data certa, n sei pq…
public class Data
{
private int dia;
private int mes;
private int ano;
public void data(String data)
{
String[] separacao = data.split("/");
if(separacao.length != 3) return;
this.dia = Integer.parseInt(separacao[0]);
this.mes = Integer.parseInt(separacao[1]);
this.ano = Integer.parseInt(separacao[2]);
dataValida(this.dia, this.mes, this.ano);
}
private void dataValida(int dia, int mes, int ano)
{
System.out.println(dia + mes + ano);
}
}
public class TesteData
{
public static void main(String[] args)
{
Data x = new Data();
x.data("08/03/2012");
}
}
qual a saída? 08032012 ?
só uma observação, seus métodos tem nomes confusos. você usa um método dataValida(int, int, int) e o que ele faz é imprimir. Não sei se é só para testes, mas fica a observação.
achei o motivo, rs
System.out.println(dia + "" + mes + "" + ano);
achei o motivo, rs
System.out.println(dia + "" + mes + "" + ano);
Seu objetivo era somente remover o ‘/’ ? se fosse só isso existem maneiras muito mais fáceis de fazê-lo.
Sendo que concatenando os seus atributos int com “” você está gerando uma String novamente.
Bem reparado, é que eu gosto de usar os artefatos que as metodologias ágeis nos propõe 
Agora preciso montar um algoritmo para validar isto … xD
agora o dia tá 1 e não 01, tem problemas ?
achei o motivo, rs
System.out.println(dia + "" + mes + "" + ano);
Ah sim, não me atentei a isso também, ele retornava o número somado…Seu objetivo era somente remover o ‘/’ ? se fosse só isso existem maneiras muito mais fáceis de fazê-lo.
Sendo que concatenando os seus atributos int com “” você está gerando uma String novamente.
eu to imprimindo na tela pra teste mesmo ! 
Não sei hehehe… depende do que você quer fazer.
Não sei hehehe… depende do que você quer fazer.
agora no método valida to pensando em verificar se os meses vao ate 12 e os dias ate 31 algo desse tipo… rs
Entendi, bom nesse caso 1 ou 01 não faz diferença, se for comparação matemática o “zero a esquerda” não vale nada mesmo… por isso a expressão hehehe…
Você pode validar datas com expressões regulares também, ja pensou nisso? Dependendo da sua necessidade, pode ser uma solução mais simples.
Entendi, bom nesse caso 1 ou 01 não faz diferença, se for comparação matemática o “zero a esquerda” não vale nada mesmo… por isso a expressão hehehe…
Você pode validar datas com expressões regulares também, ja pensou nisso? Dependendo da sua necessidade, pode ser uma solução mais simples.
legal Rodrigo, pra vc ter ideia eu to estudando Java pela apostila, daí tem um exercicio que pede pra eu verificar datas, por ex 31 de fevereiro rs…
Isso daí ainda nem vi no livro, será q é legal eu já aprender isso ?
Não vejo problema, como é um exercício mais de lógica do que da linguagem, eu particularmente acho interessante você tentar resolvê-lo.
Não vejo problema, como é um exercício mais de lógica do que da linguagem, eu particularmente acho interessante você tentar resolvê-lo.
tem algum link bom aí pra mim ? XD
link relacionado a que ?
expressões regulares
oi, acho que acabei, ficou assim:
Data.java
public class Data
{
private int dia;
private int mes;
private int ano;
public void data(String data)
{
String[] separacao = data.split("/");
if (separacao.length != 3) return;
this.dia = Integer.parseInt(separacao[0]);
this.mes = Integer.parseInt(separacao[1]);
this.ano = Integer.parseInt(separacao[2]);
dataValida();
}
private void dataValida()
{
if (this.dia > 31) return;
if (this.mes > 12) return;
if ((this.mes == 4 || this.mes == 6 || this.mes == 9 || this.mes == 11) && (this.dia > 30)) return;
if (anoBissexto(this.ano))
{
if (this.dia > 29 && this.mes == 2) return;
}else
{
if (this.dia > 28 && this.mes == 2) return;
}
System.out.println("----------------------------");
System.out.println(this.dia + "/" + this.mes + "/" + this.ano);
System.out.println("Data Válida");
System.out.println("----------------------------");
}
private boolean anoBissexto(int ano)
{
if(this.ano % 4 != 0) return false;
return true;
}
}
TesteData.java
public class TesteData
{
public static void main(String[] args)
{
Data x = new Data();
x.data("01/01/1991");
}
}
o que acham? usei muito código ??? Abraçoss !!!
Link sobre Expressões Regulares:
Eu li um livro desse cara que é muito simples e fácil de ler, mas isso não invalida o conteúdo, que é muito bom.