Java - Añadir años a una fecha

 
Vista:
sin imagen de perfil

Añadir años a una fecha

Publicado por Xavi (21 intervenciones) el 30/07/2021 14:57:53
Hola a todos,

Soy nuevo en Java y tengo la siguiente duda.

Quiero añadir un determinado número de años contenidos en una variable tipo String a otra variable que viene como tipo String que representa una fecha y no sé como hacerlo. Un ejemplo seria:

1. Dadas las siguientes dos variables
String años = "50"
String fecha = "20200101"

2. El resultado tiene que ser:

String resultado = "20700101"

Imagino que habría que formatear la fecha y convertirla a fecha para poder sumar pero no tengo claro como hacerlo en Java. Alguna idea?

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Billy Joel
Val: 2.665
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Añadir años a una fecha

Publicado por Billy Joel (876 intervenciones) el 30/07/2021 17:20:36
Hay varias formas de lograr lo que pides.
Se puede hacer con substring, separando caracteres, etc...
Como esto parece ser operaciones con fechas (sumar o restar dias, meses o años) te presento esta solución:
1
2
3
4
5
6
7
8
9
10
11
12
String años = "50";
String fecha = "20200101";
try {
    SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
    Calendar c = Calendar.getInstance();
    c.setTime(sdf.parse(fecha));
    c.add(Calendar.YEAR, Integer.parseInt(años));
    fecha = sdf.format(c.getTime());
} catch (ParseException ex) {
    ex.printStackTrace(System.out);
}
System.out.println("Fecha: " + fecha);

En la línea "c.add(Calendar.YEAR, Integer.parseInt(años));" puedes añadir o restar días, meses o años.

Bueno cualquier duda solo grita

PD: Te dejo una guía sobre SimpleDateFormat http://tutorials.jenkov.com/java-internationalization/simpledateformat.html

Saludos,
Billy Joel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Añadir años a una fecha

Publicado por Blue (1 intervención) el 30/07/2021 18:16:58
Hola

Una forma facíl seria.


1
2
3
4
5
6
7
8
9
10
11
//Establecemos la fecha que queremos ocupar de tipo String
String miFecha = "2021-07-30";
		//Convertimos el String a fecha
		LocalDate conFecha = LocalDate.parse(miFecha);
		//Agregamos 10 años a la fecha
		LocalDate nuevaFecha10AniosMas = conFecha.plusYears(10);
		//Restamos 4 años a la fecha
		LocalDate nuevaFecha5AniosMenos = conFecha.minusYears(4);
		//Imprimimos las fechas
		System.out.println(nuevaFecha10AniosMas);
		System.out.println(nuevaFecha5AniosMenos);

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar