Ir para conteúdo
  • 0

[Resolvido] Formatar Tempo.


_Kurimatzu_

Pergunta

Queria formatar o tempo +- assim.

 

 

//  2 minutos //

Tempo = 120; 

 

Aí ficaria assim

 

2min 0sg

1min 59sg

 

Se o tempo for em horas ficaria assim:

 

 

10h 15min 10seg

 

Em dias:

 

1 dia , 1 hora , 3 segundos.

 

 

Alguém pode fazer esses métodos? ;-;

Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

Ai, eu tinha feito pro Yukki
 

    private static String format( int seconds )
    {
        int hours = 0, minutes = 0;

        while ( (seconds / 3600) > 0 )
        {
            seconds -= 3600;
            hours++;
        }

        while ( (seconds / 60) > 0 )
        {
            seconds -= 60;
            minutes++;
        }

        StringBuilder ret = new StringBuilder();

        if ( hours > 0 )
        {
            ret.append( hours ).append( " " ).append( hours > 1
                                                      ? "horas"
                                                      : "hora" );
        }

        if ( minutes > 0 )
        {
            if ( ret.length() > 0 )
                ret.append( ", " );

            ret.append( minutes ).append( " " ).append( minutes > 1
                                                        ? "minutos"
                                                        : "minuto" );
        }

        if ( seconds > 0 )
        {
            if ( ret.length() > 0 )
                ret.append( ", " );

            ret.append( seconds ).append( " " ).append( seconds > 1
                                                        ? "segundos"
                                                        : "segundo");
        }

        return ret.toString();
    };
	
public static void main(String[] args)
{
	System.out.println(FormatSeconds(60));
	System.out.println(FormatSeconds(62340));
	System.out.println(FormatSeconds(3660));
	System.out.println(FormatSeconds(10));
}

Output:

1 minuto
17 horas, 19 minutos
1 hora, 1 minuto
10 segundos

Em c# a titulo de curiosidade

        private static readonly Func<uint, string> FormatSeconds = (seconds) =>
        {
            int hours = 0, minutes = 0;

            while ( (seconds / 3600) > 0 )
            {
                seconds -= 3600;
                hours++;
            }

            while ( (seconds / 60) > 0 )
            {
                seconds -= 60;
                minutes++;
            }

            var ret = new StringBuilder();

            if ( hours > 0 )
            {
                ret.Append( hours ).Append( " " ).Append( hours > 1
                                                          ? Lang.HOURS.GetMessage()
                                                          : Lang.HOUR.GetMessage() );
            }

            if ( minutes > 0 )
            {
                if ( ret.Length > 0 )
                    ret.Append( ", " );

                ret.Append( minutes ).Append( " " ).Append( minutes > 1
                                                            ? Lang.MINUTES.GetMessage()
                                                            : Lang.MINUTE.GetMessage() );
            }

            if ( seconds > 0 )
            {
                if ( ret.Length > 0 )
                    ret.Append( ", " );

                ret.Append( seconds ).Append( " " ).Append( seconds > 1
                                                            ? Lang.SECONDS.GetMessage()
                                                            : Lang.SECOND.GetMessage() );
            }

            return ret.ToString();
        };

Esse segundo é em c#, eu tinha feito em c# pq eu tava precisando eu eu passei pra java e tals, eu só copiei da minha MP e colei aqui mesmo

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

Seria bom explicar melhor...

Formatar o tempo , tipo assim 

 

 

Eu tenho 120 segundos aí ficaria assim:

 

 

2min 0sg

1min 59sg

 

Se eu tenho horas ficaria assim:

 

1hora 59min 2sg

 

 

Se eu tenho dias ficaria assim:

 

1 dia 5min 3seg.

 

Entendeu?

Link para o comentário
Compartilhar em outros sites

Ai, eu tinha feito pro Yukki

 

    private static String format( int seconds )
    {
        int hours = 0, minutes = 0;

        while ( (seconds / 3600) > 0 )
        {
            seconds -= 3600;
            hours++;
        }

        while ( (seconds / 60) > 0 )
        {
            seconds -= 60;
            minutes++;
        }

        StringBuilder ret = new StringBuilder();

        if ( hours > 0 )
        {
            ret.append( hours ).append( " " ).append( hours > 1
                                                      ? "horas"
                                                      : "hora" );
        }

        if ( minutes > 0 )
        {
            if ( ret.length() > 0 )
                ret.append( ", " );

            ret.append( minutes ).append( " " ).append( minutes > 1
                                                        ? "minutos"
                                                        : "minuto" );
        }

        if ( seconds > 0 )
        {
            if ( ret.length() > 0 )
                ret.append( ", " );

            ret.append( seconds ).append( " " ).append( seconds > 1
                                                        ? "segundos"
                                                        : "segundo");
        }

        return ret.toString();
    };
	
public static void main(String[] args)
{
	System.out.println(FormatSeconds(60));
	System.out.println(FormatSeconds(62340));
	System.out.println(FormatSeconds(3660));
	System.out.println(FormatSeconds(10));
}

Output:

1 minuto
17 horas, 19 minutos
1 hora, 1 minuto
10 segundos

Em c# a titulo de curiosidade

        private static readonly Func<uint, string> FormatSeconds = (seconds) =>
        {
            int hours = 0, minutes = 0;

            while ( (seconds / 3600) > 0 )
            {
                seconds -= 3600;
                hours++;
            }

            while ( (seconds / 60) > 0 )
            {
                seconds -= 60;
                minutes++;
            }

            var ret = new StringBuilder();

            if ( hours > 0 )
            {
                ret.Append( hours ).Append( " " ).Append( hours > 1
                                                          ? Lang.HOURS.GetMessage()
                                                          : Lang.HOUR.GetMessage() );
            }

            if ( minutes > 0 )
            {
                if ( ret.Length > 0 )
                    ret.Append( ", " );

                ret.Append( minutes ).Append( " " ).Append( minutes > 1
                                                            ? Lang.MINUTES.GetMessage()
                                                            : Lang.MINUTE.GetMessage() );
            }

            if ( seconds > 0 )
            {
                if ( ret.Length > 0 )
                    ret.Append( ", " );

                ret.Append( seconds ).Append( " " ).Append( seconds > 1
                                                            ? Lang.SECONDS.GetMessage()
                                                            : Lang.SECOND.GetMessage() );
            }

            return ret.ToString();
        };

Esse segundo é em c#, eu tinha feito em c# pq eu tava precisando eu eu passei pra java e tals, eu só copiei da minha MP e colei aqui mesmo

e dias? 

 

1 dia 1min , 2sg

Link para o comentário
Compartilhar em outros sites

Usa esse

int seconds = 62340;

final int DAY_VAL      = 60*60*24,
          HOURS_VAL    = 60*60,
	  MINUTES_VAL  = 60;

int days, hours, minutes;

days = seconds / DAY_VAL;
seconds -= days * DAY_VAL;

hours = seconds / HOURS_VAL;
seconds -= hours * HOURS_VAL;

minutes = seconds / MINUTES_VAL;
seconds -= minutes * MINUTES_VAL;

System.out.println( days + " dias, " + 
		    hours + " horas, " + 
		    minutes + " minutos " + 
		    seconds + " segundos" );

Agora é só usar o stringBuilder pra montar a string bunitinha,

isso tu faz por que eu não vou dar tudo na boca.

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

<p style="text-align:center;"><img alt="logo-forum.png" src="http://www.gamersboard.com.br/logo-forum.png"/></p><br /></br><br /></br><br />Sua dúvida foi marcada como [Resolvido] e movido à área de dúvidas resolvidas.</br><br /></br><br /></br><br />Atenciosamente,</br><br />Gamer's Board</br>

Link para o comentário
Compartilhar em outros sites

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