0

TrabalhandoClasseCalendar

#Java
Ronaldo Siqueira
Ronaldo Siqueira

Olá pessoal,


Estarei compartilhando meus exercícios dessa boot camp no meu GitHub, quem quiser fique a vontade para baixar, e opinar.


Obrigado.


ronaldoedicassio/boot-camp-java-inter: Boot Camp Exercicios Java (github.com)


_____________________________________

Primeiro desafio achei interessante, apesar de ser simples, tive que pesquisar para conseguir realizar as conversões e fazer o tratamento, ainda tem espaço para melhorar, como por separar em classes, para deixar o código mais atraente.

Segue abaixo:



  1. /**
  2. *Calcular os dias que pode se pagar uma conta a partir da data informada
  3. *Considerando 10 dias sem juros, caso o décimo dia seja no sabádo ou domingo
  4. *informar a data da próxima segunda.
  5. *@author Ronaldo 
  6. */
  7. public class TrabalhandoClasseCalendar {

  8.   /**
  9.    * @param args the command line arguments
  10.    */
  11.   public static void main(String[] args) throws ParseException {

  12.     Scanner leitor = new Scanner(System.in);
  13.     SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
  14.     System.out.print("Digite data de vencimento da fatura: dd/MM/yyyy ->");
  15.     String dateInString = leitor.nextLine();
  16.     Date date = sdf.parse(dateInString);
  17.     TrabalhandoClasseCalendar obj = new TrabalhandoClasseCalendar();

  18.     Calendar calendar = obj.dateToCalendar(date);

  19.     //acrescentando 10 dias
  20.     calendar.add(Calendar.DATE, 10);

  21.     // pegando o dia da semana após acrescentar os 10 dias
  22.     int diaSemana = obj.dayWeek(calendar);

  23.     switch (diaSemana) {
  24.       case 7 -> {
  25.         //somando mais dois dias - próxima segunda
  26.         calendar.add(Calendar.DATE, 2);
  27.         //System.out.println("Data limite para pagamento sem multa: " + calendar.getTime());
  28.         System.out.printf("Data limite para pagamento sem multa: %tD\n", calendar);
  29.       }
  30.       case 1 -> {
  31.         //somando mais um dia - próxima segunda
  32.         calendar.add(Calendar.DATE, 1);
  33.         //System.out.println("Data limite para pagamento sem multa: " + calendar.getTime());
  34.         System.out.printf("Data limite para pagamento sem multa: %tD\n", calendar);
  35.       }
  36.       default -> System.out.printf("Data limite para pagamento sem multa: %tD\n", calendar);
  37.     }
  38.   }

  39.   private int dayWeek(Calendar calendar) {
  40.     int diaSemana = calendar.get(calendar.DAY_OF_WEEK);
  41.     return diaSemana;
  42.   }

  43.   private Calendar dateToCalendar(Date date) {
  44.     Calendar calendar = Calendar.getInstance();
  45.     calendar.setTime(date);
  46.     return calendar;
  47.   }
  48. }


0
35

Comentários (0)

None

Brasil