[Pedido] Converter Tempo
#1

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!
Reply
#2

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;

Reply
#3

nгo й bem para converter os segundos e sim o "dia"
Reply
#4

https://sampforum.blast.hk/showthread.php?tid=583208&page=2

o n0minal postou algo semelhante, de uma lida neste tуpico.
Reply
#5

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
Reply
#6

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.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)