[code] public static long horarioCumprido(int usu, String data1, String data2, Connection Conexao){
String dtIni = data1;
String sql;
long total = 0;
String dataIni[] = data1.split("/");
int diaIni = Integer.parseInt(dataIni[0]);
int mesIni = Integer.parseInt(dataIni[1]);
int anoIni = Integer.parseInt(dataIni[2]);
SimpleDateFormat dtFormat = new SimpleDateFormat("dd/MM/yyyy");
GregorianCalendar dt = new GregorianCalendar(anoIni, mesIni - 1, diaIni);
while (!dtIni.equals(data2)){
try {
dtIni = dtFormat.format(dt.getTime());
dt.add(GregorianCalendar.DAY_OF_MONTH, 1);
Statement st = Conexao.createStatement();
sql = "SELECT dedao.horas_dia(" + usu + ",'" + dtIni + "')";
ResultSet rs = st.executeQuery(sql);
rs.next();
total += toSeconds(rs.getString("horas_dia"));
} catch (SQLException ex) {
ex.printStackTrace();
}
}
return total;
}[/code]
Ola pessoal desenvolvi esse codigo para retornar a soma de dois horarios,
creio que o codigo possa ser melhorado mas como estou aprendendo a mecher
com datas cheguei nisso ai.
Porem eu preciso pegar esses segundos no final e transformar em hora
e quando passar de um dia nao ficar 01 12:00:00 e sim 36:00:00 entende
mas quando eu chamo o seguinte codigo ele transforma em dia.
E possivel fazer essa configuracao utilizando algum metodo do proprio java do
Gregorian ou Date. ou devo fazer manualmente multiplicando o dia por 24.
long teste = CalculaHora.horarioCumprido(Integer.parseInt(request.getParameter("funcionario"))
, dataini, datafim, c.conn);
SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss");
formatter.setTimeZone(TimeZone.getTimeZone("GMT"));
java.util.Date dtTeste = new java.util.Date(teste * 1000);
Obs: Quem tive sugestao de melhoria do codigo tbm aceito ehehhee
Obrigado