Baixe o app para aproveitar ainda mais
Prévia do material em texto
UNESP/FEG/DMA Programação de Computadores II - Prof. Senne Aula de Laboratório 3 ATENÇÃO: Não esquecer de incluir os nomes dos alunos da turma em cada classe. Atividade 1. Codificar, em Java, a seguinte classe: MinhaData − int DT + MinhaData() + MinhaData(int x) + MinhaData(int dd, int mm, int aa) + void setDT(int x) + int getDT() + int getDia() + int getMes() + int getAno() + void avancar(int x) + void voltar(int x) + String toString() − int anoBissexto(int ano) − int diasDoAno(int ano) − int diasDoMes(int mes, int ano) Observar os seguintes pontos: • O campo DT armazena o número de dias transcorridos desde 01/01/1900. • O construtor sem parâmetros deve, por meio do setter, atribuir ao campo DT o valor 1. • O construtor com 1 parâmetro deve, por meio do setter, atribuir ao campo DT o valor do parâmetro. • O construtor com 3 parâmetros deve, por meio do setter, atribuir ao campo DT um valor que corresponda à data dd/mm/aa. • Os métodos getDia(), getMes() e getAno() devem retornar, respectivamente, o valor do dia, o valor do mês e o valor do ano, da data correspondente ao valor de DT. • O método avancar() deve avançar a data correspondente ao valor de DT em x dias. • O método voltar() deve retroceder a data correspondente ao valor de DT em x dias. • O método toString() deve retornar um string da forma dd/mm/aaaa. • O método anoBissexto(int ano) deve retornar 1 se: ((ano % 100 != 0) && (ano % 4 == 0)) || ((ano % 100 == 0) && (ano % 400 == 0)). Caso contrário, deve retornar 0. • O método diasDoAno(int ano) deve retornar (365 + anoBissexto(ano)). • O método diasDoMes(int mes, int ano) deve retornar o número de dias de mes, levando em conta se ano é bissexto ou não. Observar que o construtor MinhaData(int dd, int mm, int aa) deve atribuir ao campo DT o número de dias transcorridos desde o dia 01/01/1900 até o dia dd/mm/aa. Isto pode ser feito da seguinte maneira: 2 public MinhaData(int dd, int mm, int aa) { int x = 0; int ano = 1900; while (ano < aa) { x = x + diasDoAno(ano); ano++; } int mes = 1; while (mes < mm) { x = x + diasDoMes(mes,aa); mes++; } x = x + dd; setDT(x); } Observar que os métodos getDia(), getMes() e getAno() devem fazer exatamente o contrário, ou seja, conhecido o valor de DT (número de dias transcorridos desde 01/01/1900), retornar o valor do dd, mm e aa, respectivamente. Atividade 2. Codificar, em Java, a classe principal Lab3, para utilizar todos os recursos da classe MinhaData. Os dados necessários devem ser fornecidos pelo usuário. A leitura dos dados deve utilizar métodos da classe Scanner.
Compartilhar