Acrescentar dias em uma data qualquer

Bom dia,
sou novo em programação e estou com dificuldades para desenvolver um código para somar datas.
Estou desenvolvendo um programa para minha empresa. Eu irei lançar uma data num campo jDateChooser (Data de moldagem), e lançarei um valor em um jTextField (Idade de rompimento). Preciso que esse valor seja somado a data e me retorne o resultado em um jFormattedTextField (Data de rompimento) em formato de data. Alguém poderia me ajudar?
Obrigado.

Novos em programação não trabalham com datas. Novos em programação trabalham com estruturas básicas e com conceitos de orientação a objetos. Se já passou disso, não é mais novo.

Isso contradiz o que escreveu antes. Novos em programação não desenvolvem sistemas, apenas ajudam em partes nas quais a complexidade é menor.

E? Cadê o código? Cadê os detalhes do que está usando no projeto?

Só é possível ajudar quem quer se ajudar, entende? Ou você dá informações relevantes (“novo em programação” não é relevante) ou não temos condições de orientar a respeito de qual a melhor maneira de resolvere o problema.

No caso, este valor que vc vai lançar é a quantidade de anos, né? Estou considerando que sim.

Eu fiz um exemplo que pode ser útil (estou considerando que vc está usando esta lib)

import com.toedter.calendar.JDateChooser;

import javax.swing.*;
import java.awt.*;
import java.time.LocalDateTime;
import java.time.ZoneId;

public class Main {
    public static void main(String[] args){
        JFrame frame = new JFrame("Test");
        JDateChooser chooser = new JDateChooser();
        JButton button = new JButton("Calcular");
        JLabel label = new JLabel();
        JTextField input = new JTextField();

        button.addActionListener(e -> {
            if (chooser.getDate() != null && !input.getText().isEmpty()) {
                LocalDateTime localDateTime = chooser.getDate().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
                int valor = Integer.parseInt(input.getText());
                label.setText(localDateTime.plusYears(valor).toString());
            }
        });

        frame.setLayout(new GridLayout(4, 1));
        frame.add(chooser);
        frame.add(input);
        frame.add(button);
        frame.add(label);
        frame.setLocationRelativeTo(null);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.pack();
        frame.setVisible(true);
    }
}

Somar Datas? Explique?

Porque data é um dado temporal como seria essa soma, pode explicar?

Na verdade irei acrescentar dias. É um sistema para registar corpos de prova de concreto do meu laboratório. Nele nós inserimos a data que o corpo de prova foi moldado e a idade que ele será rompido. Em seguida o resultado da soma da data de moldagem + idade de rompimento terá que me trazer a data de rompimento, que será o dia em que o corpo de prova será ensaiado.
exemplo:
Data de moldagem: 01/05/2019
Idade de rompimento: 28 dias
Data de rompimento: 29/05/2019.

1 curtida

Obrigado

Pode fazer da seguinte forma:

import java.time.LocalDate;

public class Main {
  public static void main(String ... args) {
    LocalDate a = LocalDate.of(2019, 05, 01); //Uma data base qualquer
    LocalDate b = a.plusDays(28); //Adiciona a quantidade de dias desejada
    System.out.println(b); //Saída: 2019-05-29
  }
}
2 curtidas

Se for usar o código que mostrei, é só substituir o plusYears por plusDays.

1 curtida

Você pode utilizar também a biblioteca do apache, apache.commons.lang3 que vai te ajudar não só na data mas também em vários utilitários disponíveis.

Tem a classe DateUtils, que possui uma infinidade de métodos, inclusive o que você procura como o addDays, addYear etc…

> Primeiro parâmetro a data e o segundo a quantidade de dias que deseja
> Date novaData = DateUtils.addDays(new Date(), 5);

Para baixar ela você encontra no MVN repository.