A classe deve conter o método fixarData que recebe como argumento os valores de dia, mês e ano. O método fixarData deve realizar a validação da data. Deve-se criar também o método mostrarData, responsável por imprimir no console a data no formato: “dd/mm/aaaa”.
Ai vc quer que alguém faça pra você ?
Nossa é incrível sério é só voltar as férias que o pessoal começa aqui, porra, pelo menos cria a classe com os atributos e joga aqui, faz um esboço mesmo que feio do método e a galera vai ajudando, mas só jogar o enunciado é muita sacangem.
Agora se nem isso você sabe fazer
Vou tentar te ajudar! Escrevi abaixo um esboço de como seria o programa (de forma bem simples, sem levar em conta os modificadores de acesso da linguagem). Deixei algumas ideias pra te ajudar a implementar a validação da data no método fixarData.
class Data {
int dia;
String mes;
ano;
void fixarData(int dia, int mes, int ano) {
/*Code here. Antes de tudo, implemente uma validação
para saber se o ano é bissexto ou não, pois isso irá definir a
quantidade de dias do mês de fevereiro. Feito isso, pense
em como cada mês tem quantidades de dias diferentes.
Por exemplo, se mes = "janeiro", então 0 < dia < 31. Vá
pensando dessa forma e implementando. Dica: Use google para
obter as informações que você precisa. Ex: Como descobrir se o ano
é bissexto*/
}
void mostrarData() {
System.out.println(this.dia+"/"+this.mes+"/"+this.ano);
}
public static void main(String[] args) {
Data data = new Data(); /*Instanciando a classe Data
(criando o objeto data a partir da classe Data)*/
data.fixarData(2, "março", 2016);
data.mostrarData();
}
}
Muito obrigado. Tentei fazer, mas está dando erro em fevereiro. Será que você pode me ajudar?!
public class Data {
public int dia;
public int mes;
public int ano;
public void fixarData(int dia, int mes, int ano) {
boolean datavalida = true;
if ((mes >= 1) && (mes <= 12)) {
if ((mes == 1) || (mes == 3) || (mes == 5) || (mes == 7) || (mes == 8) || (mes == 10) || (mes == 12)) {
if ((dia >= 1) && (dia <= 31)) {
datavalida = true;
}
}else if ((mes == 4) || (mes == 6) || (mes == 9) || (mes == 11)) {
if ((dia >= 1) && (dia <= 30)) {
datavalida = true;
}
}else if (mes == 2) {
if (ano % 4 == 0) {
if ((dia >= 1) && (dia <= 29)) {
datavalida = true;
}
}
if (ano % 4 > 0) {
if ((dia >= 1) && (dia <= 28)) {
datavalida = true;
}
}else {
datavalida = false;
}
}
if (ano < 0) {
datavalida = false;
}
}else {
datavalida = false;
}
if (datavalida) {
this.dia = dia;
this.ano = ano;
this.mes = mes;
}else {
System.out.println("Data inválida");
}
}
public String mostrarData() {
return String.format("%d/%d/%d", dia, mes, ano);
}
}
public class Datas {
public static void main(String[] args) {
Data dt = new Data();
dt.fixarData(10000, 2, 2015);
System.out.println("Data:" + " " + dt.mostrarData());
}
}
Olá! Como eu não consegui encontrar o erro no seu código, acabei fazendo o meu próprio. Fiz algumas modificações na sugestão que te mandei. Por exemplo, criei um método construtor e ao invés do método fixarData, criei o método validaData que devolve um boolean. Abaixo está o meu código:
Obs: usei esse link http://ciencia.hsw.uol.com.br/ano-bissexto1.htm para saber como calcular se um ano é bissexto.
public class Data {
int dia;
int mes;
int ano;
public Data(int dia, int mes, int ano) {
this.dia = dia;
this.mes = mes;
this.ano = ano;
}
public boolean validaData() {
if(ano >= 0) {
if((mes >= 1) && (mes <=12)) {
if(mes == 1 || mes == 3 || mes == 5 || mes == 7 || mes == 8 || mes == 10 || mes == 12) {
if (dia >= 1 && dia <= 31) {
return true;
}
else {
return false;
}
}
else if(mes == 4 || mes == 6 || mes == 9 || mes == 11) {
if (dia >= 1 && dia <= 30) {
return true;
}
else {
return false;
}
}
else {
//Mês de fevereiro
if(ano % 4 != 0) { //Ano não é bissexto
if(dia >= 1 && dia <= 28) {
return true;
} else {
return false;
}
}
else if(ano % 4 == 0) {//Ano pode ser bissexto
if(ano % 100 != 0) { //Ano bissexto
if(dia >= 1 && dia <= 29) {
return true;
}
else {
return false;
}
}
else {
if(ano % 400 == 0) {
return true;
}
else {
return false;
}
}
}
}
}
else {
return false;
}
}
else {
return false;
}
return true;
}
public void mostrarData() {
if(validaData()) {
System.out.println(this.dia+"/"+this.mes+"/"+this.ano);
}
else {
System.out.println("Data não é válida.");
}
}
public static void main(String[] args) {
Data data = new Data(30,2,2016);
data.validaData();
data.mostrarData();
}
}
Obrigado pela ajuda!!!