SA-MP Forums

SA-MP Forums (https://forum.sa-mp.com/index.php)
-   Português/Portuguese (https://forum.sa-mp.com/forumdisplay.php?f=34)
-   -   [Pedido] Converter Tempo (https://forum.sa-mp.com/showthread.php?t=676209)

MasterWinX 02/06/2020 01:12 AM

Converter Tempo
 
Estou procurando um código que converte os dias para: 'dias, hora, minuto e segundo'

Exemplo: tenho sistema de vip e falta 2 dias para acabar ai converte para 2 dias e a hora o minuto e etc.

Agradeço a quem ajudar!

k2bi 02/06/2020 01:17 AM

Re: Converter Tempo
 
Esse sistema não é meu, porém não lembro de quem eu peguei.
PHP Code:

ConvertTime(number)
{
    new 
hours 0mins 0secs 0string[100];
    
hours floatround(number 3600);
    
mins floatround((number 60) - (hours 60));
    
secs floatround(number - ((hours 3600) + (mins 60)));
    new 
days 0;

    if(
hours >= 24)
    {
        
days floatround((hours/24), floatround_floor);
        
hours hours 24;
    }

    if(
days 0)
    {
        
format(string100"%d dias, %02d:%02d:%02d"dayshoursminssecs);
    }
    else if(
hours 0)
    {
        
format(string100"%02d:%02d:%02d"hoursminssecs);
    }
    else
    {
        
format(string100"%02d:%02d"minssecs);
    }
    return 
string;



MasterWinX 02/06/2020 01:23 AM

Re: Converter Tempo
 
não é bem para converter os segundos e sim o "dia"

darkxdll 02/06/2020 01:25 AM

Re: Converter Tempo
 
https://forum.sa-mp.com/showthread.php?t=583208&page=2

o n0minal postou algo semelhante, de uma lida neste tópico.

MasterWinX 02/06/2020 01:48 AM

Re: Converter Tempo
 
tentei assim:

PHP Code:

stock ConvertDay(number)
{
    
number gettime() + (number 86400);
    new 
hours 0mins 0secs 0string[100];
    
hours floatround(number 3600);
    
mins floatround((number 60) - (hours 60));
    
secs floatround(number - ((hours 3600) + (mins 60)));
    new 
days 0;
    if(
hours >= 24)
    {
        
days floatround((hours/24), floatround_floor);
        
hours hours 24;
    }
    if(
days 0)
    {
        if(
days == 1)
            
format(string100"%d dia, %02d:%02d:%02d"dayshoursminssecs);
        else
              
format(string100"%d dias, %02d:%02d:%02d"dayshoursminssecs);
    }
    else if(
hours 0)
    {
        
format(string100"%02d:%02d:%02d"hoursminssecs);
    }
    else
    {
        
format(string100"%02d:%02d"minssecs);
    }
    return 
string;


e não funcionou

Locky_ 02/06/2020 08:24 PM

Re: Converter Tempo
 
Como é contabilizado o tempo do seu sistema? As vezes há algum erro neste.

Por exemplo, se quero definir 30 dias de VIP para meu jogador
pawn Code:
MeuTempoVIP[playerid] = gettime() + (86400 * 30);

Agora para saber quanto tempo tenho
pawn Code:
new MeuTempo = MeuTempoVIP[playerid] - gettime(); // Basicamente eu obtenho o tempo se for maior que gettime, se for menor, já expirou.
new Dias, Horas, Minutos, Segundos;
if(MeuTempo >= 86400) // é maior ou igual á 1 dia
{
    Dias = MeuTempo / 86400;
    MeuTempo -= 86400 * Dias;
}
if(MeuTempo >= 3600) // maior ou igual á 1 hora
{
    Horas = MeuTempo / 3600;
    MeuTempo -= 3600 * Horas;
}
if(MeuTempo >= 60) // maior ou igual a 1 minuto
{
    Minutos = MeuTempo / 60;
    MeuTempo -= 60 * Minutos;
}
Segundos = MeuTempo;
new MsgTempo[30];
format(MsgTempo, 30 ,"%02d dias %02d horas %02d minutos e %02d segundos", Dias, Horas, Minutos, Segundos);
Faça a adaptação conforme desejar. A lógica basicamente é esta. Há outras formas de exibir o tempo (no formato de data também), para isto, deverá utilizar include ou plugins para exibir por exemplo que o vip de tal jogador expira em 02/06/2020 por exemplo.


All times are GMT. The time now is 03:24 AM.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.