Jump to content

Conversor de milissegundos


Recommended Posts

Bom galera, queria mostrar a vocês meu script de conversão de milissegundos em dia / hora / minutos, não achei nenhum script que fosse igual a esse então resolvi fazer um eu mesmo. Aqui em baixo tirei print de um mod de IPVA feito por mim, aqui mostra basicamente o que estou falando kk

Aqui  está o script:

function convertMilliseconds (milliseconds, times)
	if tonumber(milliseconds) and tostring(times) then
    	milliseconds = tonumber(milliseconds)
		newMilliseconds = milliseconds
		if times == "day" then
			if milliseconds >= 86400000 then
				day = 0
				newMilliseconds = milliseconds
				for i=1, 100 do
					if newMilliseconds >= 86400000 then
						day = day + 1
						newMilliseconds = newMilliseconds - 86400000
					else
						break
					end
				end
			end
			return day or 0
		elseif times == "hour" then
			for i=1, 100 do
				if newMilliseconds > 86400000 then
					newMilliseconds = newMilliseconds - 86400000
				else
					break
				end
			end
			if newMilliseconds > 86400000 then
				newMilliseconds = 86400000
			else
				newMilliseconds = newMilliseconds		
			end
				hour = 0
				for h=1, 100 do
					if newMilliseconds >= 3600000 then
						hour = hour + 1
						newMilliseconds = newMilliseconds - 3600000
					else
						break
					end
				end 
			return hour or 0
		elseif times == "minutes" then
			for i=1, 100 do
				if newMilliseconds > 86400000 then
					newMilliseconds = newMilliseconds - 86400000
				else
					break
				end
			end	
			for h=1, 100 do
				if newMilliseconds > 3600000 then
					newMilliseconds = newMilliseconds - 3600000
				else
					break
				end
			end 
			if newMilliseconds > 3600000 then
				newMilliseconds = 3600000
			else
				newMilliseconds = newMilliseconds
			end
			minutes = 0
			for m=1, 100 do
				if newMilliseconds >= 60000 then
					minutes = minutes + 1
					newMilliseconds = newMilliseconds - 60000
				else
					break
				end 
			end
			return minutes or 0
		end
	end
end

Ele está um pouco extenso pq não encontrei mais formas de simplificar, qualquer problema que vocês encontrarem me fale.

formas de usar:

Millisegundos = 60000
convertMilliseconds(Millisegundos, "day")
convertMilliseconds(Millisegundos, "hour")
convertMilliseconds(Millisegundos, "minutes")

4SmAiy3.png

lGgMXCs.png

Link to comment
function convertMilliseconds (milliseconds, times)
	if tonumber(milliseconds) and tostring(times) then
		milliseconds = tonumber(milliseconds)
		newMilliseconds = milliseconds
		day = nil
		minutes = nil
		hour = nil
		if times == "day" then
			if milliseconds >= 86400000 then
				day = 0
				newMilliseconds = milliseconds
				for i=1, 100 do
					if newMilliseconds >= 86400000 then
						day = day + 1
						newMilliseconds = newMilliseconds - 86400000
					else
						break
					end
				end
			end
			return day or 0
		elseif times == "hour" then
			for i=1, 100 do
				if newMilliseconds > 86400000 then
					newMilliseconds = newMilliseconds - 86400000
				else
					break
				end
			end
			if newMilliseconds > 86400000 then
				newMilliseconds = 86400000
			else
				newMilliseconds = newMilliseconds		
			end
				hour = 0
				for h=1, 100 do
					if newMilliseconds >= 3600000 then
						hour = hour + 1
						newMilliseconds = newMilliseconds - 3600000
					else
						break
					end
				end 
			return hour or 0
		elseif times == "minutes" then
			for i=1, 100 do
				if newMilliseconds > 86400000 then
					newMilliseconds = newMilliseconds - 86400000
				else
					break
				end
			end	
			for h=1, 100 do
				if newMilliseconds > 3600000 then
					newMilliseconds = newMilliseconds - 3600000
				else
					break
				end
			end 
			if newMilliseconds > 3600000 then
				newMilliseconds = 3600000
			else
				newMilliseconds = newMilliseconds
			end
			minutes = 0
			for m=1, 100 do
				if newMilliseconds >= 60000 then
					minutes = minutes + 1
					newMilliseconds = newMilliseconds - 60000
				else
					break
				end 
			end
			return minutes or 0
		end
	end
end

não consegui editar o outro então decidi postar aqui, arrumei um bug que tava dando quando o milissegundo era muito grande

Link to comment
  • Moderators

Como esta seção funciona também inclui showcase e pedidos de resources (como se fosse a categoria global Scripting + a Resources juntas) então também é utilizada para essa finalidade.

Nesse caso, nem se trata de um resource, então seria desnecessário upar como um resource na community.mtasa.com. Seria melhor adicionar a função aqui: https://wiki.multitheftauto.com/wiki/Useful_Functions

Mas quanto à sua função @zMpyster tá meio que feita na base da gambiarra e precisa de um código mais "limpo" sem esses loops aí. A propósito, já tem essa função útil na Wiki:

https://wiki.multitheftauto.com/wiki/SecondsToTimeDesc

  • Like 1
Link to comment
On 11/04/2019 at 21:03, DNL291 said:

Como esta seção funciona também inclui showcase e pedidos de resources (como se fosse a categoria global Scripting + a Resources juntas) então também é utilizada para essa finalidade.

Nesse caso, nem se trata de um resource, então seria desnecessário upar como um resource na community.mtasa.com. Seria melhor adicionar a função aqui: https://wiki.multitheftauto.com/wiki/Useful_Functions

Mas quanto à sua função @zMpyster tá meio que feita na base da gambiarra e precisa de um código mais "limpo" sem esses loops aí. A propósito, já tem essa função útil na Wiki:

https://wiki.multitheftauto.com/wiki/SecondsToTimeDesc

Eu, me esqueci que tinha como fazer contas mais simplificadas nesse caso kk, não sou muito bom ainda com script, acho que essa é a primeira função que faço...

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...