SimpleDateFormat("hhh:mm") para calculo de carga horaria?

Bom alguem ja fez esse calculo com o SimpleDateFormat format = new SimpleDateFormat(“hhh:mm”);

Por exemplo a soma dos dias

Horas trabalhadas:

12:00
08:00
12:00
12:00
09:00
12:00
12:00
12:00
12:00

total 101:00 horas trabalhadas

Alguem tem um solucao para o caso.

Desde ja agradeco as respostas.

Usa Calendar… não seria mais interessante?

Você vai adicionando horas, e depois pega o total de horas do dia inicial até o dia final… Neste caso você só vai usar as horas, então a data é irrelevante…

Fiz um teste com o Calendar mais tb nao funcionou ou eu nao to sabendo fazer
O exemplo abaixo imprimi 002:00 horas o long abaixo é referente a 101:00 horas


       SimpleDateFormat dateFormat = new SimpleDateFormat("HHH:mm");
        
        Calendar cal1 = Calendar.getInstance();
        cal1.setTimeInMillis(363600000);
        
        System.out.println(dateFormat.format(cal1.getTime()));
        

Usar Calendar acredito que seja a melhor opção vc pode usar o metodo add para somar as horas e usar constantes para somar e captuar apenas as horas

neste exemplo estou somando 5 horas a hora atual , vc pode fazer algo neste sentido
Calendar c = Calendar.getInstance();
c.add(Calendar.HOUR, 5);
System.out.println(c.get(Calendar.HOUR_OF_DAY));

Então, como o Thiago disse, você não pode ter como parâmetro de tempo a Data, e sim somente as horas, no caso, fiz um exemplo meio tosco, ajuste como necessário:

		Calendar cal = new GregorianCalendar();
		long current = cal.getTimeInMillis();
		cal.add(Calendar.HOUR_OF_DAY, 38);
		long after = cal.getTimeInMillis();

		long seconds = (after - current)/1000;
		long minutes = seconds/60;
		long minutesRound = minutes % 60;
		long hours = minutes/60;
		
		
		System.out.println(hours + ":" + minutesRound);

EDIT: No caso, quando for somar, você utilizaria um Calendar com, exemplo, 8 horas da manhã, e depois adicionaria no campo HOUR, MINUTE e SECOND o valor da data corrente, que seria a saída, algo assim:

		Calendar cal = new GregorianCalendar();
		long current = cal.getTimeInMillis();
		cal.add(Calendar.HOUR, 8); // 8 poderia ser o campo currentCal.get(Calendar.HOUR_OF_DAY)
                                                        // menos o corrente e você adicionaria ao HOUR_OF_DAY
		cal.add(Calendar.MINUTE, 30); // Pra ser mais preciso, se usar só o HOUR_OF_DAY não é exato
		cal.add(Calendar.SECOND, 0); // Idem
		long after = cal.getTimeInMillis();

usar o Calendar nunca é mais fácil :smiley:

pode pegar essas strings mesmo e converter as horas para minutos e depois somar tudo. Por exemplo:

String[] horario = "21:10".split(":"); int minutos = (Integer.valueOf(horario[0])*60) + Integer.valueOf(horario[1]);