Lista de Exercícios

Adeline de Sousa, Milena Rocha e Paulo Borba

Centro de Informática

Universidade Federal de Pernambuco

 


1. Defina em Java a classe Hora contendo os métodos equals, anterior, posterior e atualizar, conforme as assinaturas abaixo:

Além dos métodos acima, defina os métodos get e set para cada um dos atributos da classe. Defina também um construtor. Utilize a classe Console apenas para apresentar mensagens de erro na tela.

2.Escreva um método main em Java que lê duas horas (horas e minutos, nesta ordem) do teclado e as compara, apresentando uma mensagem na tela indicando se a primeira é posterior à segunda. Utilize a classe Console.

3. Defina em Java a classe Data, a qual deve conter um construtor e os métodos anterior, posterior, equals e atualizar, similares aos da classe Hora da Questão 1. Utilize a classe Console apenas para apresentar mensagens de erro na tela. Não precisa levar em consideração a existência de anos bissextos mas considere que existem meses com 30 e 31 dias. 

4. Escreva um método main em Java que lê três datas (dia, mês e ano, nesta ordem) do teclado e as compara, apresentando uma mensagem na tela imprimindo a maior e a menor das três, nesta ordem.

5. Defina em Java  a classe Periodo, que tem como atributos duas datas, e que deve conter um construtor e os métodos anterior, posterior, equals e atualizar, similares aos da classe Hora da Questão 1. Utilize a classe Console apenas para apresentar mensagens de erro na tela. Para o período1 ser anterior ao período2 é necessário que sua data inicial e final sejam anteriores à data inicial do período2. Se uma das datas do período1 estiver contida no intervalo das datas inicial e final do período2, então ele não é considerado anterior nem posterior.

6. Estenda a classe Periodo com os seguintes métodos:

Utilize a classe Console apenas para apresentar mensagens de erro na tela.

7. Agora que já foram criados os métodos acima, reformule o método anterior e posterior para que os mesmos não tenham repetição de código desnecessária.

8. Escreva um método main em Java que lê seis datas (dia, mês e ano, nesta ordem) do teclado, constrói três períodos, verifica se os dois primeiros períodos tem interseção, se o primeiro é sub-período do segundo e verifica também se a primeira data está dentro do terceiro período construído.  Utilize a classe Console para leitura do teclado e impressão dos resultados. Crie um método auxiliar para ler uma data (dia, mês e ano, nesta ordem) e use-o para evitar repetição de código.

9. Altere o método main da Questão 8 para que ele também imprima as datas digitadas que tenham janeiro ou julho como mês. Indique também quantas datas foram digitadas com dia 1.