Desafio Java número 2 =[

No fórum colocaram a seguinte pergunta

“Ex: Tenho uma String = “35:00″(trinta e cinco horas).. quero descontar “00:45” (quarenta e cinco minutos) para obter como resultado “34:15″ (trinta e quatro horas e quinze minutos), como posso fazer isso?”

Qual seria a melhor forma de fazer?? Considerando que os parâmetros seriam passados corretamente no formato “hh:mm” em String

Antes de clicar, ou ler a seguir, tente fazer !

O desafio número um foi feito por 19 pessoas! Caso consiga fazer de uma melhor maneira , por favor envie o código.

*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
já tentou?
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
Os passos que segui foram
1) Split para pegar Hora e Minuto
2) Usei a classe TimeUnit para converter tudo para segundos
http://docs.oracle.com/javase/1.5.0/docs/api/java/util/concurrent/TimeUnit.html
Exemplo se for usar Hora para Segundos

TimeUnit.HOURS.toSeconds(24);

3) Subtrai o total de cada tempo, e o resultado converti novamente para hora e minuto

package com.byiorio;

import java.util.concurrent.TimeUnit;

/***
 * 
 * @author Lucas iorio:
 * www.byiorio.com
 *
 */
public class CalculoTime {
	public static void main(String[] args) {
		System.out.println(subtraiHora2("35:00", "00:45"));

	}

	public static String subtraiHora2(String hora, String hora2) {
		long segundos1 = TimeUnit.HOURS.toSeconds(Integer.valueOf(hora.split(":")[0]))+ TimeUnit.MINUTES.toSeconds(Integer.valueOf(hora.split(":")[1]));
		long segundos2 = TimeUnit.HOURS.toSeconds(Integer.valueOf(hora2.split(":")[0]))+ TimeUnit.MINUTES.toSeconds(Integer.valueOf(hora2.split(":")[1]));
		return(( segundos1 - segundos2) / 3600) + ":" + (( segundos1 - segundos2) % 3600 / 60);
	}

}

Um comentário em “Desafio Java número 2 =[

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Blue Captcha Image
Atualizar

*

Facebook

Get the Facebook Likebox Slider Pro for WordPress
WordPress SEO fine-tune by Meta SEO Pack from Poradnik Webmastera