Pessoal estou com um baita problema na empresa e nao consigo arrumar
Antes de colocar o uma parte do código, vou explicar mais ou menos o que preciso
seguindo a regra de negocios da empresa, preciso em dias determinados extrair informações em txt conectando com o banco
conectar com o banco e extrair o txt blz!
porém as datas é que complicam, mudam todo o mês
que nem
me de agosto
data de corte é
20110721,
20110724,
20110727,
20110802,
20110804,
20110807,
20110810,
20110813,
20110816,
20110818
se for mês de setembro
20110821,
20110824,
20110827,
20110902,
20110904,
20110907,
20110910,
20110913,
20110916,
20110918
Esses valores preciso colocar dentro de um select para extrair os arquivos conforme a data de corte
nisso eu sei que teria que concatenar
vou colocar o select aqui:
ResultSet rs = st.executeQuery("select * from system.parque_trafego_"+dt_data+" where conta = "+dt_corte+" and cod_subtp_produto_comercial = 'LINA'");
Eu fiz um case, porém está muito grande ,queria diminuir isso, mas nao sei implementar como fazer isso!?
vou colocar uma parte do case aqui, onde pego o mês e os dias do mês que deve executar o sistema
switch(Calendar.getInstance().get(Calendar.MONTH)){
case 0://JANEIRO
switch(Calendar.getInstance().get(Calendar.DAY_OF_MONTH)){
case 07 :
System.out.println("dt_ciclo 01 Periodo 09");
dt_ciclo = "01";
dt_mes_ftra = dtHora5+dtHora2;
dt_data = dtHora5+dtHora2+dt_ciclo;
dt_corte = dtHora6+dtHora3+"21";
break;
case 10 :
System.out.println("dt_ciclo 02 Periodo 12");
dt_ciclo = "02";
dt_mes_ftra = dtHora5+dtHora2;
dt_data = dtHora5+dtHora2+"02";
dt_corte = dtHora6 + dtHora3 + "24";
break;
case 13:
System.out.println("dt_ciclo 03 Periodo 15");
dt_ciclo = "03";
dt_mes_ftra = dtHora5 + dtHora2;
dt_data = dtHora5 + dtHora2+dt_ciclo;
dt_corte = dtHora6 + dtHora3 + "27";
break;
case 16:
System.out.println("dt_ciclo 04 Periodo 18");
dt_ciclo = "04";
dt_mes_ftra = dtHora5 + dtHora2;
dt_data = dtHora5 + dtHora2+dt_ciclo;
dt_corte = dtHora5 + dtHora2 + "02";
break;
case 19:
System.out.println("dt_ciclo 05 Periodo 21");
dt_ciclo = "05";
dt_mes_ftra = dtHora5 + dtHora2;
dt_data = dtHora5 + dtHora2+dt_ciclo;
break;
case 22:
System.out.println("dt_ciclo 06 Periodo 24");
dt_ciclo = "06";
dt_mes_ftra = dtHora5 + dtHora2;
dt_data = dtHora5 + dtHora2+dt_ciclo;
dt_corte = dtHora6 + dtHora2 + "07";
break;
case 25:
System.out.println("dt_ciclo 07 Periodo 27");
dt_ciclo = "07";
dt_mes_ftra = dtHora5 + dtHora2;
dt_data = dtHora5 + dtHora2+dt_ciclo;
dt_corte = dtHora6 + dtHora2 + "10";
break;
case 28:
System.out.println("dt_ciclo 08 Periodo 01");
dt_ciclo = "08";
dt_mes_ftra = dtHora5 + dtHora2;
dt_data = dtHora5 + dtHora2+dt_ciclo;
dt_corte = dtHora6 + dtHora2 + "13";
break;
case 04:
System.out.println("dt_ciclo 10 Periodo 06");
dt_ciclo = "10";
dt_mes_ftra = dtHora5 + dtHora2;
dt_data = dtHora6 + dtHora3+dt_ciclo;
dt_corte = dtHora6 + dtHora4 + "18";
break;
default:
System.out.println("dia invalido");
System.exit(1);
break;
}
break;
case 1:
Estou pegando as datas da seguinte forma, vou colocar só alguns
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
//PEGA DIA ATUAL
SimpleDateFormat formatador = new SimpleDateFormat("dd");
Date agora = new Date();
String dtHora = formatador.format(agora);
//***************************************************
//PEGA DIA ATUAL+2
SimpleDateFormat formatador33 = new SimpleDateFormat("dd");
GregorianCalendar call33 = new GregorianCalendar();
call33.add(Calendar.DATE, 2);
String dtHora33 = formatador33.format(call33.getTime());
//***************************************************
//PEGA MÃ?S ATUAL
SimpleDateFormat formatador2 = new SimpleDateFormat("MM");
GregorianCalendar call = new GregorianCalendar();
call.add(Calendar.MONTH, 0);
String dtHora2 = formatador2.format(call.getTime());
//***************************************************
Aqui só coloquei uma parte do case, pois está enorme, pois fiz pra cada mês, pois quando chega em janeiro, ele tem que pegar valores do mês de Dezembro
como diminuir esse case, alguém pode me ajudar! grato a todos