Deparei com o seguinte problema:
O cliente seleciona a data de sua escolha no jDateChooser, e com isso devera mostrar em um outro campo, sendo ele também um jDateChooser, um prazo limite, mas consigo somar o número de dias a partir da da atual do sistema, mas não do componente que ele escolhe a data inicial,
Exemplo:
Data Inicial: 27/04/2017
Data Final: 02/05/2017
A data final será acrescentada automaticamente 5 dias.
1 curtida
Olá,
Usa a nova API de data do Java8:
LocalDate data = LocalDate
.parse("01/04/2017", DateTimeFormatter.ofPattern("dd/MM/yyyy"));
data = data.plusDays(5);
1 curtida
Caso você tenha um Date
ao invés de uma String
, existem outras formas de se chegar ao LocalDate
:
Date data = new Date();
Instant instant = Instant.ofEpochMilli(data.getTime());
LocalDate ldata = LocalDateTime.ofInstant(instant, ZONEID_BR).toLocalDate();
1 curtida
Você pode criar um método para fazer isso, segue um exemplo abaixo!
public Date somaDias(Date data, int dias) {
Calendar cal = new GregorianCalendar();
cal.setTime(data);
cal.add(Calendar.DAY_OF_MONTH, dias);
return cal.getTime();
}
1 curtida
Para complementar o que os outros colocaram acima use o método addDateListener(DateListener listener)
do jDateChooser
para executar uma ação quando a data for modificada.
1 curtida
Calendar c = Calendar.getInstance();
jDateChooser1.getDate();
LocalDate data = LocalDate
.parse("27/04/2017", DateTimeFormatter.ofPattern("dd/MM/yyyy"));
data = data.plusDays(5);
jFormattedTextField1.setText(data.toString());
Então… não consegui ir muito longe, LocalDate.parse("27/04/2017
, nesta parte deveria pegar as informações do jDataChooser1
, mas quando passo como parâmetro, diz que o tipo não pode ser convertido.
1 curtida
Não cara, você misturou tudo.
Ou vc usa
.parse("27/04/2017", DateTimeFormatter.ofPattern("dd/MM/yyyy"));
quando tiver uma String de data, ou você usa
Instant instant = Instant.ofEpochMilli(data.getTime());
LocalDate ldata = LocalDateTime.ofInstant(instant, ZONEID_BR).toLocalDate();
quando tiver um Date. Entenda que jDateChooser1.getDate();
retorna um Date
. Neste caso, vai pela ideia do Jonathan_Medeiros que vai ser melhor pra você.
1 curtida