Date And Time
Esse exercício propõe usar a classe Calendar para construir uma saída com apenas o dia da semana a partir de um input de mês, dias e ano (nessa ordem).
Exemplo:
month = 8
day = 05
year = 2015
Saída: WEDNESDAY // (em letras maiúsculas)
O problema começa com o seguinte código:
class Result {
public static String findDay(int month, int day, int year) {
}
- Primeiro, criei uma variável
calendário
que pega o método .getInstance();
É preciso usar o método estático .getInstance() porque a classe Calendar é abstrata e não pode ser instanciada.
- Depois, usando os setters, definimos mês, dia e ano.
Os meses do ano estão num array de 0 a 11, por isso não dá pra colocar simplesmente
month
, sendo necessário botar -1. Dessa forma, se o input for 2 (número do mês de fevereiro normalmente), lerá na verdade -1 + 2, dando 1 (fevereiro, no array de month).
Por fim, retornamos o calendário junto do método .getDisplayName(). Esse método exige três parâmetros: (field, style, locale). O field são os campos necessários (DAY_OF_WEEK, MONTH, etc); o style é o parâmetro (.LONG, .SHORT, etc); e locale é o local. Como a saída precisa ser em inglês, precisamos colocar .US ou .CANADA, não funciona .GERMANY ou .FRANCE.
E o .toUpperCase() porque o problema pedia para estar em maiúsculo.
O resultado é o seguinte:
class Result {
public static String findDay(int month, int day, int year) {
Calendar calendario = Calendar.getInstance();
calendario.set(Calendar.MONTH, month-1);
calendario.set(Calendar.DAY_OF_MONTH, day);
calendario.set(Calendar.YEAR, year);
return calendario.getDisplayName(Calendar.DAY_OF_WEEK, Calendar.LONG, Locale.US).toUpperCase();
}
}
============
Essa publicação faz parte de uma série de exercícios resolvidos em Java no HackerRank. Acesse a série completa:
- HackerRank #6 | Scanner e End-of-file
- HackerRank #7 | Int to String / String to Int
- HackerRank #8 | Date and Time
- HackerRank #9 | Static Initializer Block
- HackerRank #10 | Currency Formatter
- HackerRank #11 | DataTypes
- HackerRank #12 | Strings Introduction
- HackerRank #13 | Substring Comparisons
- HackerRank #14 | Abstract Class
- HackerRank #18 | BigInteger
- HackerRank #19 | Loops II
- HackerRank #20 | String Reverse
- HackerRank #23 | Instanceof keyword
- HackerRank #26 | Generics
- HackerRank #27 | 1D Array
- HackerRank #28 | Anagrams
- HackerRank #33 | Arraylist
- HackerRank #34 | Exception Handling Try / Catch
- HackerRank #36 | Exception Handling
- HackerRank #37 | List
- HackerRank #38 | SubArray
- HackerRank #39 | HashSet
- HackerRank #40 | Java Dequeue
Top comments (0)