Ir para conteúdo

Featured Replies

Postado
  • Este é um post popular.

Bom, eu estava cansado de ficar fazendo os cálculos para exibir as horas, minutos ou segundos quando faço algum script com cooldown. Então, eu criei essa função simples que converte o valor em segundos para hora, minuto e segundo.

 

      Exemplos:
convertTime(60)
retornará "1 minuto"
convertTime(61)
retornará "1 minuto e 1 segundo"
convertTime(3600)
retornará "1 hora"
convertTime(3601) retornará "1 hora e 1 segundo"
convertTime(3661) retornará "1 hora, 1 minuto e 1 segundo"


E como eu sou babaca perfeccionista, o português também vem correto. Enfim, aqui está a função.
 

function convertTime(a)

  if(type(tonumber(a)) == "number" and a > 0) then
    if (a <= 3599) then
      local minute = math.floor(a/60)
      local second = a - (60 * minute)

      if(second == 0) then
        return ((minute)..((minute > 1) and " minutos" or " minuto"))
      else
        return ((minute ~= 0) and ((minute>1) and minute.." minutos e " or minute.." minuto e ").. ((second>1) and second.." segundos" or second.." segundo") or ((second>1) and second.." segundos" or second.. " segundo"))
      end
    else
      local hour = math.floor(a/3600)
      local minute = math.floor((a - (hour * 3600))/60)
      local second = (a - (3600 * hour) - (minute * 60))

      if (minute == 0 and second > 0) then
        return (hour..((hour > 1) and " horas e " or " hora e "))..(second..((second > 1) and " segundos" or " segundo"))
      elseif (second == 0 and minute > 0) then
        return (hour..((hour > 1) and " horas e " or " hora e "))..(minute..((minute > 1) and " minutos" or " minuto"))
      elseif (second == 0 and minute == 0) then
        return (hour..((hour > 1) and " horas" or " hora"))
      end
      return (hour..((hour > 1) and " horas, " or " hora, "))..(minute..((minute > 1) and " minutos e " or " minuto e "))..(second..((second > 1) and " segundos" or " segundo"))
    end
  end
end

Obs: se der algum bug com algum número, é só postar, não testei todas possibilidades (obviamente).
Por fim, sei que fazer o horário no formato 00:00:00 ou retornar o valor de horas, minutos e segundos separadamente me pouparia metade do trabalho e, no segundo caso, deixaria mais fácil para controlar os dados, mas eu queria que viesse nesse formato mesmo. Anyway, espero que seja útil e poupe o trabalho de alguém.

                                                                     Ajudei? De nada \o/                                            Att Rusherzin

Postado

Parabéns, seu tópico de conteúdo foi aprovado!
Muito obrigado pela sua contribuição, nós do Tibia King agradecemos.
Seu conteúdo com certeza ajudará à muitos outros, você recebeu +1 REP.

Mostrar conteúdo oculto

 

                                                              ezgif-1-98aab239f3.gif.1a897c9c3225228909e7b356a5cfb8e4.gif

  • 1 year later...

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo