¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Como Calcular Rapidamente as Datas da Semana em Java a partir da Saída de uma BAPI

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

Olá Especialistas,

Estou usando o programa Web Dynpro. A BAPI retorna o primeiro dia da semana (ou seja, segunda-feira). Preciso calcular as datas de terça, quarta, quinta, sexta, sábado e domingo com base na saída da BAPI. Por exemplo, suponha que a BAPI tenha retornado a segunda-feira, 25 de fevereiro de 2007. Com base nisso, preciso calcular quais serão as datas de terça, quarta, quinta, sexta, sábado e domingo. Como podemos calcular isso rapidamente em Java?

Saudações,

Brian

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

3 Respuestas

0
Cargando...

Olá Brian,

Aqui está o trecho de código que você está procurando.

<b>Suposição:</b>

O tipo de retorno da BAPI é uma String. Exemplo: <b>"Segunda-feira, 31 de maio de 2007"</b>

String day = "Segunda-feira, 31 de maio 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("Jan")){

current_month = 0;

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

current_month = 1;

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

current_month = 2;

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

current_month = 3;

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

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("Set")){

current_month = 8;

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

current_month = 9;

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

current_month = 10;

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

current_month = 11;

}

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

cal.add(Calendar.DATE, 1); //Terça-feira

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); //Quarta-feira

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); //Quinta-feira

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); //Sexta-feira

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));

Deve adicionar a saída conforme sua conveniência.

Espero que isso ajude.

Saudações,

Rekha Malavathu

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

Olá!

Você pode usar o seguinte código para atingir seu objetivo:


public class DateUtility {	/* Adicionar Dia/Mês/Ano a uma Data add() é usado para adicionar valores a um objeto Calendário. Especifique qual campo do Calendário será afetado pela operação (Calendar.YEAR, Calendar.MONTH, Calendar.DATE). */	public static void addToDate(){		System.out.println("Na Operação ADICIONAR");	//	String DATE_FORMAT = "yyyy-MM-dd";		String DATE_FORMAT = "dd-MM-yyyy";		//Consulte a documentação Java para formatos		java.text.SimpleDateFormat sdf =  new java.text.SimpleDateFormat(DATE_FORMAT);		Calendar c1 = Calendar.getInstance();		Date d1 = new Date();		System.out.println("Data de hoje no Formato de Calendário : "+c1);		System.out.println("c1.getTime() : "+c1.getTime());		System.out.println("c1.get(Calendar.YEAR): " + c1.get(Calendar.YEAR));		System.out.println("Data de hoje no Formato de Data : "+d1);		c1.set(1999,0 ,20); 		//(ano,mês,data)		System.out.println("c1.set(1999,0 ,20) : "+c1.getTime());		c1.add(Calendar.DATE,40);		System.out.println("Data + 20 dias é : " + sdf.format(c1.getTime()));		System.out.println();		System.out.println();	}

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

Se isso for útil, por favor, recompense com pontos.

Obrigado

ritu

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

Aqui tens um artigo muito completo sobre datas e manipulação de datas:

Ver artigo (O'Reilly)

Caso contrário, procure pelo método add da classe java.util.Calendar....

Já tentaste isto?:

Calendar mycal = new Calendar();

mycal.setDate(sapdate);

mycal.add(Calendar.DATE, 1);

Aproveita e atribui pontos

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?