Olá pessoal, fiz esse exercícioe ao rodar diz que não existia o metodo main, inserir e agora me dá o erro na primeira variável com a mensagem “illegal start of expression”.
já mexi e remexi e não entendi o erro. Grato se alguém puder ajudar
package tp04;
import java.util.Scanner;
public class Data
{
public static void main(String[] args)
{
//variaveis utilizadas apenas nesta class pelos construtores.
private int dia;
private int mes;
private int ano;
Scanner ler = new Scanner(System.in);
public Data()
{
entraAno();
entraMes();
entraDia();
}
public Data(int d, int m, int a)
{
entraAno(a);
entraMes(m);
entraDia(d);
}
//Verifica data e salva no construtor com parametro.
private void entraDia(int d)
{
if (d < 1 || d > qtdDias(mes))
{
System.out.println("Dia Invalido, deve estar no intervalo (1-"+qtdDias(mes)+") para o mes "+mes);
this.dia = 1;
}
else
{
this.dia = d;
}
}
//Verifica data e salva no construtor com parametro.
private void entraMes(int m)
{
if (m < 1 || m > 12)
{
System.out.println("Mes Invalido, deve estar no intervalo (1-12)");
this.mes = 1;
}
else
{
this.mes = m;
}
}
//Verifica data e salva no construtor com parametro.
private void entraAno(int a)
{
if (a < 1 || a > 9999)
{
System.out.println("Ano Invalido, deve estar no intervalo (1-9999)");
this.ano = 1;
}
else
{
this.ano = a;
}
}
//Verifica data e salva no construtor sem parametro.
private void entraDia()
{
int d = 0;
while (d < 1 || d > qtdDias(mes))
{
try
{
System.out.print("Informe o dia: ");
d = ler.nextInt();
}
catch (Exception e) { }
if (d < 1 || d > qtdDias(mes))
{
System.out.println("Dia Invalido, deve estar no intervalo (1-"+qtdDias(mes)+") para o mes "+mes);
}
}
this.dia = d;
}
//Verifica data e salva no construtor sem parametro.
private void entraMes()
{
int m = -1;
while (m < 1 || m > 12)
{
try
{
System.out.print("Informe o mes: ");
m = ler.nextInt();
}
catch (Exception e) { }
if (m < 1 || m > 12)
{
System.out.println("Mes Invalido, deve estar no intervalo (1-12)");
}
}
this.mes = m;
}
////Verifica ano e salva no construtor sem parametro.
public final void entraAno()
{
int a = -1;
while (a < 1 || a > 9999)
{
try
{
System.out.print("Informe o ano: ");
a = ler.nextInt();
}
catch (Exception e) { }
if (a < 1 || a > 9999)
{
System.out.println("Ano Invalido, deve estar no intervalo (1-9999)");
}
}
this.ano = a;
}
//salva na variavel privada.
public int retDia()
{
return this.dia;
}
//salva na variavel privada.
public int retMes()
{
return this.mes;
}
//salva na variavel privada
public int retAno()
{
return this.ano;
}
//monta a string com a data completa(dd/mm/aaaa).
public String mostra1()
{
String data = "";
if (this.dia < 10)
data += "0";
data += this.dia + "/";
if (this.mes < 10)
data += "0";
data += this.mes + "/";
if (this.ano < 1000)
data += "0";
if (this.ano < 100)
data += "0";
if (this.ano < 10)
data += "0";
data += this.ano;
return data;
}
//mostra data completo(dd/mesPorExtenso/ano).
public String mostra2()
{
String data = "";
if (this.dia < 10)
data += "0";
data += this.dia + "/";
switch(mes)
{
case 1:
data += "Janeiro";
break;
case 2:
data += "Fevereiro";
break;
case 3:
data += "Março";
break;
case 4:
data += "Abril";
break;
case 5:
data += "Maio";
break;
case 6:
data += "Junho";
break;
case 7:
data += "Julho";
break;
case 8:
data += "Agosto";
break;
case 9:
data += "Setembro";
break;
case 10:
data += "Outubro";
break;
case 11:
data += "Novembro";
break;
case 12:
data += "Dezembro";
break;
default:
data += "Mês-Inválido";
break;
}
data += "/";
if (this.ano < 1000)
data += "0";
if (this.ano < 100)
data += "0";
if (this.ano < 10)
data += "0";
data += this.ano;
return data;
}
//valida se o ano e bissexto ou nao
public boolean bissexto()
{
if ( ( ( ano % 4 ) == 0 ) && ( ( ano % 100 ) != 0 ) || ( ( ano % 400 ) == 0 ) )
return true;
else
return false;
}
//retorna os dias trasncorridos.
public int diasTranscorridos()
{
int cont = 0;
switch(mes)
{
case 12:
if (mes == 12)
cont+=dia;
else
cont+=31;
case 11:
if (mes == 11)
cont+=dia;
else
cont+=30;
case 10:
if (mes == 10)
cont+=dia;
else
cont+=31;
case 9:
if (mes == 9)
cont+=dia;
else
cont+=30;
case 8:
if (mes == 8)
cont+=dia;
else
cont+=31;
case 7:
if (mes == 7)
cont+=dia;
else
cont+=31;
case 6:
if (mes == 6)
cont+=dia;
else
cont+=30;
case 5:
if (mes == 5)
cont+=dia;
else
cont+=31;
case 4:
if (mes == 4)
cont+=dia;
else
cont+=30;
case 3:
if (mes == 3)
cont+=dia;
else
cont+=31;
case 2:
if (mes == 2)
cont+=dia;
else
{
if (bissexto())
cont+=29;
else
cont+=28;
}
case 1:
if (mes == 1)
cont+=dia;
else
cont+=31;
break;
default:
break;
}
return cont;
}
//retornas quandos dias tem o mes e verifica o bissexto de fevereiro usando a class bissexto().
public int qtdDias(int m)
{
switch(mes)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
return 31;
case 4:
case 6:
case 9:
case 11:
return 30;
case 2:
if (bissexto())
return 29;
else
return 28;
default:
return -1;
}
}}
}