Pessoal,
estou precisando somar horas e minutos, tentei utilizar o calendar mas o mesmo está acumulando a hora, ele volta a hora para zero e adiciona um dia a data.
Não preciso da data, apenas das horas.
Preciso somar 10:30 + 20:15 e obter 30:45
Alguem sabe me dizer se o calendar faz isso e como fazer?
Se não faz há alguma outra coisa em java que faça?
Agradeço a todos
O java.util.Calendar não faz isso. No seu caso, converta tudo para minutos, e faça uma conta simples.
10:30 + 20:15
10:30 = 10 * 60 + 30 = 630
20:15 = 20 * 60 + 15 = 1215
630 + 1215 = 1845
1845 / 60 = 30
1845 % 60 = 45
import java.text.DecimalFormat;
public class Horas {
private int minuto = 0;
public Horas() {
this.minuto = 0;
}
public Horas(String horas) {
String[] hrs = horas.split(":");
this.minuto = (Integer.parseInt(hrs[0]) * 60)
+ (Integer.parseInt(hrs[1]));
}
public void setHoras(String horas) {
String[] hrs = horas.split(":");
this.minuto = (Integer.parseInt(hrs[0]) * 60)
+ (Integer.parseInt(hrs[1]));
}
public void Zera() {
this.minuto = 0;
}
public void Adiciona(String horas) {
String[] hrs = horas.split(":");
minuto += (Integer.parseInt(hrs[0]) * 60) + (Integer.parseInt(hrs[1]));
}
public void Subtrai(String horas) {
String[] hrs = horas.split(":");
minuto -= (Integer.parseInt(hrs[0]) * 60) + (Integer.parseInt(hrs[1]));
}
public String getHoras() {
String horas;
DecimalFormat fmt = new DecimalFormat("00");
horas = Integer.toString(this.minuto / 60);
horas += ":";
horas += fmt.format(this.minuto % 60);
return horas;
}
}