¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Cómo Calcular Rápidamente las Fechas de la Semana en Java a partir de la Salida de una BAPI

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 37 Vistas
0
Cargando...

Hola Expertos,

Estoy utilizando el programa Web Dynpro. La BAPI devuelve el primer día de la semana (es decir, lunes). Tengo que calcular las fechas de martes, miércoles, jueves, viernes, sábado y domingo basándome en la salida de la BAPI. Por ejemplo, supongamos que la BAPI ha devuelto el lunes 25 de febrero de 2007. Basándome en esto, tengo que calcular cuáles serán las fechas de martes, miércoles, jueves, viernes, sábado y domingo. ¿Cómo podemos calcular esto rápidamente en Java?

Saludos,

Brian

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

3 Respuestas

0
Cargando...

Hola Brian,

Aquí está el fragmento de código que estás buscando.

<b>Suposición:</b>

El tipo de retorno de la BAPI es un String. Ejemplo: <b>"Lunes 31 de mayo de 2007"</b>

String day = "Lunes 31 de mayo de 2007";

String year = day.substring(day.lastIndexOf(" ")+1, day.length());

String month = day.substring(day.indexOf(" ") 1, day.indexOf(" ") 4);

String date = day.substring(day.indexOf(" ") 5, day.indexOf(" ") 7);

Calendar cal = Calendar.getInstance();

int current_month = 0;

if(month.equals("Ene")){

current_month = 0;

}else if(month.equals("Feb")){

current_month = 1;

}else if(month.equals("Mar")){

current_month = 2;

}else if(month.equals("Abr")){

current_month = 3;

}else if(month.equals("May")){

current_month = 4;

}else if(month.equals("Jun")){

current_month = 5;

}else if(month.equals("Jul")){

current_month = 6;

}else if(month.equals("Ago")){

current_month = 7;

}else if(month.equals("Sep")){

current_month = 8;

}else if(month.equals("Oct")){

current_month = 9;

}else if(month.equals("Nov")){

current_month = 10;

}else if(month.equals("Dic")){

current_month = 11;

}

cal.set(Integer.parseInt(year), current_month, Integer.parseInt(date));

cal.add(Calendar.DATE, 1); //Martes

System.out.println(cal.get(Calendar.MONTH));

System.out.println(cal.get(Calendar.DATE));

System.out.println(cal.get(Calendar.YEAR));

cal.add(Calendar.DATE, 1); //Miércoles

System.out.println(cal.get(Calendar.MONTH));

System.out.println(cal.get(Calendar.DATE));

System.out.println(cal.get(Calendar.YEAR));

cal.add(Calendar.DATE, 1); //Jueves

System.out.println(cal.get(Calendar.MONTH));

System.out.println(cal.get(Calendar.DATE));

System.out.println(cal.get(Calendar.YEAR));

cal.add(Calendar.DATE, 1); //Viernes

System.out.println(cal.get(Calendar.MONTH));

System.out.println(cal.get(Calendar.DATE));

System.out.println(cal.get(Calendar.YEAR));

cal.add(Calendar.DATE, 1); //Sábado

System.out.println(cal.get(Calendar.MONTH));

System.out.println(cal.get(Calendar.DATE));

System.out.println(cal.get(Calendar.YEAR));

cal.add(Calendar.DATE, 1); //Domingo

System.out.println(cal.get(Calendar.MONTH));

System.out.println(cal.get(Calendar.DATE));

System.out.println(cal.get(Calendar.YEAR));

Debes agregar la salida según tu conveniencia.

Espero que esto te ayude.

Saludos,

Rekha Malavathu

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

¡Hola!

Puedes utilizar el siguiente código para cumplir tu propósito:


public class DateUtility {	/* Agregar Día/Mes/Año a una Fecha add() se utiliza para agregar valores a un objeto Calendario. Especificas qué campo del Calendario se verá afectado por la operación (Calendar.YEAR, Calendar.MONTH, Calendar.DATE). */	public static void addToDate(){		System.out.println("En la Operación ADD");	//	String DATE_FORMAT = "yyyy-MM-dd";		String DATE_FORMAT = "dd-MM-yyyy";		//Refer Java DOCS for formats		java.text.SimpleDateFormat sdf =  new java.text.SimpleDateFormat(DATE_FORMAT);		Calendar c1 = Calendar.getInstance();		Date d1 = new Date();		System.out.println("Fecha de hoy en Formato de Calendario : "+c1);		System.out.println("c1.getTime() : "+c1.getTime());		System.out.println("c1.get(Calendar.YEAR): " + c1.get(Calendar.YEAR));		System.out.println("Fecha de hoy en Formato de Fecha : "+d1);		c1.set(1999,0 ,20); 		//(año,mes,fecha)		System.out.println("c1.set(1999,0 ,20) : "+c1.getTime());		c1.add(Calendar.DATE,40);		System.out.println("Fecha + 20 días es : " + sdf.format(c1.getTime()));		System.out.println();		System.out.println();	}

public static void main(String args[]){	
	addToDate();
}

Si te resulta útil, por favor, recompensa con puntos.

Gracias

ritu

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Aquí tienes un artículo muy completo sobre fechas y manipulación de fechas:

Ver artículo (O'Reilly)

De lo contrario, busca el método add de la clase java.util.Calendar....

¿Has intentado esto?:

Calendar mycal = new Calendar();

mycal.setDate(sapdate);

mycal.add(Calendar.DATE, 1);

Disfruta y atribuye puntos

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?