Galera, meu professor pediu um exercício para a nota… Preciso da ajuda de vocês pra dar aquele empurrão, por favor!!!
Seguinte, deve-se entrar com uma data pelo Scanner (exemplo: 02/07/1992) e sair 02 de Julho de 1992… Até aí é muito fácil, mas não pode usar For, Array e pode usar apenas um If.
Na hora, resolvi o problema com a função replace, hahahahah! Ele não aceitou, óbvio!
Na segunda tentiva, usei por tratamento de string… Em um variável MESES coloquei “01Janeiro02Fevereiro03Março…12Dezembro” daí por tratamento de string eu consegui resolver o problema de novo funcionando perfeitamente…
MAS, meu querido professor disse-me que devo tirar esses número… deve ficar assim “JaneiroFevereiroMarçoAbril…Dezembro”… Ele ensinou-nos encapsulamento, será que devo usar isso? Atribuir tudo em um objeto? Ainda não entendi muito bem o uso do encapsulamento atribuindo tudo em um Objeto
public Teste(){
String data = "02/07/1992";
String dia = data.split("/")[0];
String mes = retornaMesByNumero(data.split("/")[1]);
String ano = data.split("/")[2];
System.out.println(dia + " de " + mes + " de " + ano);
}
public static void main(String[] args) {
new Teste();
}
public String retornaMesByNumero(String numero){
String mes="";
switch (Integer.parseInt(numero)) {
case 1:
mes = "Janeiro";
break;
case 2:
mes = "Fevereiro";
break;
case 3:
mes = "Março";
break;
case 4:
mes = "Abril";
break;
case 5:
mes = "Maio";
break;
case 6:
mes = "Junho";
break;
case 7:
mes = "Julho";
break;
case 8:
mes = "Agosto";
break;
case 9:
mes = "Setembro";
break;
case 10:
mes = "Outubro";
break;
case 11:
mes = "Novembro";
break;
case 12:
mes = "Dezembro";
break;
default:
break;
}
return mes;
}
}[/code]
Bem provável que seu professor vai reclamar com alguma coisa… :roll:
Aliás, um pouco sobre encapsulamento, pois não sei bem onde ele queria que fosse aplicado o encapsulamento, e não sei se você também entendeu o conceito: http://pt.wikipedia.org/wiki/Encapsulamento
Eu sei que esses exercícios são para demonstrar um princípio (e não para serem usados na prática), mas desta vez nem o princípio eu sei qual é.
Eu só sei que na prática, uma das maneiras para formatar uma data num padrão é usando o SimpleDateFormat ou o String.format. O pessoal aqui recomenda o uso da biblioteca Joda Time.
[quote=marcelo.bellissimo][code]public class Teste {
public Teste(){
String data = "02/07/1992";
String dia = data.split("/")[0];
String mes = retornaMesByNumero(data.split("/")[1]);
String ano = data.split("/")[2];
System.out.println(dia + " de " + mes + " de " + ano);
}
public static void main(String[] args) {
new Teste();
}
public String retornaMesByNumero(String numero){
String mes="";
switch (Integer.parseInt(numero)) {
case 1:
mes = "Janeiro";
break;
case 2:
mes = "Fevereiro";
break;
case 3:
mes = "Março";
break;
case 4:
mes = "Abril";
break;
case 5:
mes = "Maio";
break;
case 6:
mes = "Junho";
break;
case 7:
mes = "Julho";
break;
case 8:
mes = "Agosto";
break;
case 9:
mes = "Setembro";
break;
case 10:
mes = "Outubro";
break;
case 11:
mes = "Novembro";
break;
case 12:
mes = "Dezembro";
break;
default:
break;
}
return mes;
}
}[/code]
Bem provável que seu professor vai reclamar com alguma coisa… :roll:
Aliás, um pouco sobre encapsulamento, pois não sei bem onde ele queria que fosse aplicado o encapsulamento, e não sei se você também entendeu o conceito: http://pt.wikipedia.org/wiki/Encapsulamento[/quote]
[quote=luciano@@][quote=marcelo.bellissimo][code]public class Teste {
public Teste(){
String data = "02/07/1992";
String dia = data.split("/")[0];
String mes = retornaMesByNumero(data.split("/")[1]);
String ano = data.split("/")[2];
System.out.println(dia + " de " + mes + " de " + ano);
}
public static void main(String[] args) {
new Teste();
}
public String retornaMesByNumero(String numero){
String mes="";
switch (Integer.parseInt(numero)) {
case 1:
mes = "Janeiro";
break;
case 2:
mes = "Fevereiro";
break;
case 3:
mes = "Março";
break;
case 4:
mes = "Abril";
break;
case 5:
mes = "Maio";
break;
case 6:
mes = "Junho";
break;
case 7:
mes = "Julho";
break;
case 8:
mes = "Agosto";
break;
case 9:
mes = "Setembro";
break;
case 10:
mes = "Outubro";
break;
case 11:
mes = "Novembro";
break;
case 12:
mes = "Dezembro";
break;
default:
break;
}
return mes;
}
}[/code]
Bem provável que seu professor vai reclamar com alguma coisa… :roll:
Aliás, um pouco sobre encapsulamento, pois não sei bem onde ele queria que fosse aplicado o encapsulamento, e não sei se você também entendeu o conceito: http://pt.wikipedia.org/wiki/Encapsulamento[/quote]
Este código devia estar em dos topicos sobre POG[/quote]
Concordo, mas eu fiz isso porque tenho quase certeza (se não 100% de certeza) que o professor dele vai reclamar se usar alguma classe especial pra formatar datas, ou coisa do tipo… eu sei como é esse tipo de professor, você descobre uma maneira fácil, mas ele reclama e quer que você faça da maneira mais difícil e porca possível…
Eu lembro de um professor meu que pediu pra gerar um código que “jogava dados”, ou seja, usei logo de cara o Math.random() pra gerar números aleatórios, e adivinha o que ele me falou? Te dou uma chance… :lol:
Ah, eu poderia ter feito isso também… mas eu pensei “que se dane” e fiz do jeito dele mesmo… pelo menos a turma que eu andava acabou aprendendo bem, com ou sem as aulas dele, isso porque éramos auto-didatas… depois, mais pro final do ano, esse professor até vinha perguntar algumas coisas pra gente, hahaha… 8)
[quote=marcelo.bellissimo][code]public class Teste {
public Teste(){
String data = "02/07/1992";
String dia = data.split("/")[0];
String mes = retornaMesByNumero(data.split("/")[1]);
String ano = data.split("/")[2];
System.out.println(dia + " de " + mes + " de " + ano);
}
public static void main(String[] args) {
new Teste();
}
public String retornaMesByNumero(String numero){
String mes="";
switch (Integer.parseInt(numero)) {
case 1:
mes = "Janeiro";
break;
case 2:
mes = "Fevereiro";
break;
case 3:
mes = "Março";
break;
case 4:
mes = "Abril";
break;
case 5:
mes = "Maio";
break;
case 6:
mes = "Junho";
break;
case 7:
mes = "Julho";
break;
case 8:
mes = "Agosto";
break;
case 9:
mes = "Setembro";
break;
case 10:
mes = "Outubro";
break;
case 11:
mes = "Novembro";
break;
case 12:
mes = "Dezembro";
break;
default:
break;
}
return mes;
}
}[/code]
Bem provável que seu professor vai reclamar com alguma coisa… :roll:
Aliás, um pouco sobre encapsulamento, pois não sei bem onde ele queria que fosse aplicado o encapsulamento, e não sei se você também entendeu o conceito: http://pt.wikipedia.org/wiki/Encapsulamento[/quote]
Muitooooo Obrigado, marcelo.bellissimo!
Pensei em usar o switch mas pensei que o professor não aceitaria, hehehehe
Vou falar com ele esta sexta… trago o resultado pra vocês!
Sabe, o professor explicou em sala de aula que poderíamos colocar tudo em um objeto só… pensei que tinha algum macete como
“if(objeto==Integet.parseInt(nummes)) {
return
}”
sei lá o que imaginei, hehe
Mais uma vez muito obrigado Concordo com o luciano@@ também… só fazendo mestrado pra roubar a vaga dos caras