GenerateBookReturnDate

Precisamos agora criar uma classe utilitária para obter a data de devolução em String (veja o "GenerateBookReturnDate") do método do generateEmail.

Criando classe utilitária para obter data - GenerateBookReturnDate

Essa classe será responsável por obter a data de empréstimo no formato String.

A ideia é que a gente a acesse da forma que está lá no método. Chamando: o seu nome "ponto", o método que queremos implementar.

Para isso ela será uma classe constante, ou seja, "public final class".

Precisamos começar definindo as regras de negócio.

Iremos definir o número de dias para devolução do livro no início.

Depois, criamos o método getDate, toda a explicação do código está ali embaixo.

public final class GenerateBookReturnDate {

    public static int numDaysToReturnBook = 7;

    //definindo dada formato DD-MM-YYYY
    private static DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");

    // pega a data formatada do emprestimo do livro
    public static String getDate(Date loan_Date) {
        Calendar calendar = dateToCalendar(loan_Date);

        //adicionaremos o número de dia (7 dias) para devolução do livro
        calendar.add(Calendar.DATE, numDaysToReturnBook);

        //e agora converte para String, mas precisamos criar outro metodo
        //para converter de calender para date,
        // pois o dateFormat precisa receber um Date (atualmente está Calendar)!
        String result = dateFormat.format(calendarToDate(calendar));
        return result;
    }

    //metodo para converter de Calendar pra Date, pois é o que o dateFormat precisa
    //para que possamos retornar uma String
    private static Date calendarToDate(Calendar calendar) {
        return calendar.getTime();
    }

    //converts Date do Calendar
    private static Calendar dateToCalendar(Date loanDate) {

        //instancia o calender com getInstance
        Calendar calendar = Calendar.getInstance();
        //e converte
        calendar.setTime(loanDate);
        return calendar;
    }

}

Com essa classe, podemos voltar no reader e modificar o numDaysToNofityReturn! Utilizando essa classe - 1.

Atualizado