Ir para conteúdo
  • 0

[Resolvido] Formatar Tempo.


_Kurimatzu_

Pergunta

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

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

Visitante
Este tópico está impedido de receber novos posts.
  • Quem está navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...