Ir para conteúdo
  • 0

Calcular tempo que passou


LuizB

Pergunta

Bem, estou tentando calcular o tempo em que um evento demorou pra terminar, porém está retornando 100 horas ou +, sendo que o evento não durou dois minutos.

Código:
 

import java.util.concurrent.TimeUnit;

public class CooldownWhale {
	public static long iniciou;
	public static long terminou;
		
		public static String getDelayString(String p) {
			long time = iniciou + terminou;
			return format(time);
		}
		
		
		public static String format(long time) {
			String format = "";
			long hours = TimeUnit.MILLISECONDS.toHours(time);
			long hoursInMillis = TimeUnit.HOURS.toMillis(hours);
			long minutes = TimeUnit.MILLISECONDS.toMinutes(time - hoursInMillis);
			long minutesInMillis = TimeUnit.MINUTES.toMillis(minutes);
			long seconds = TimeUnit.MILLISECONDS.toSeconds(time - (hoursInMillis + minutesInMillis));
			if (hours > 0)
				format = hours + (hours > 1 ? " horas" : " hora");
			if (minutes > 0) {
				if ((seconds > 0) && (hours > 0))
					format += ", ";
				else if (hours > 0)
					format += " e ";
				format += minutes + (minutes > 1 ? " minutos" : " minuto");
			}
			if (seconds > 0) {
				if ((hours > 0) || (minutes > 0))
					format += " e ";
				format += seconds + (seconds > 1 ? " segundos" : " segundo");
			}
			if (format.equals("")) {
				long rest = time / 100;
				if (rest == 0)
					rest = 1;
				format = "0." + rest + " segundo";
			}
			return format;
		}
		

}


O que leva menos de 1 minuto, retorna:

rHAX26D.png

Editado por Cuthmf
Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

É do mesmo jeito que você calcula qualquer diferença.

 

DECORRIDO = FINAL - INICIAL

E porque ta retornando tudo aquilo ? 830346 horas

Editado por Cuthmf
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...