Для чего нужно:
Конвертирование разницы реального Unix-времени, или указаного, и заданого в строку.
Примеры:
TypeConvert(0); >> 44 года (прошло 44 года с 1970)
TypeConvert(60, 0); >> 1 минута (разница 60 секунд)
TypeConvert(10, 0); >> меньше 1 минуты (разница 10 секунд)
TypeConvert(7200, 0); >> 2 часа (разница 7200 секунд)
TypeConvert(10, 0); >> меньше 1 минуты (разница 10 секунд)
TypeConvert(345600, 172800); >> 2 дня (разница 172800 секунд)
Автор: KakbeYura
Сам код:
PHP код:
TimeConvert(timestampcompare = -1)
{
    if(
compare == -1compare gettime();
    new 
nFloat:= (timestamp compare) ? timestamp compare compare timestampstr[32];
    if (
60)
    {
        
format(strsizeof(str), "меньше 1 минуты");
        return 
str;
    }
    new 
l;
    if (
3600)
    {
        
floatround(floatdiv(d60.0), floatround_floor);
        
format(strsizeof(str), "минут");
        
= (10);
        if(!(
10 < (100) < 20))
        {
            switch(
l)
            {
                case 
1strcat(str,"а");
                case 
2..4strcat(str,"ы");
            }
        }
    }
    else if (
86400)
    {
        
floatround(floatdiv(d3600.0), floatround_floor);
        
format(strsizeof(str), "час");
        
= (10);
        if(
10 < (100) < 20strcat(str,"ов");
        else
        {
            switch(
l)
            {
                case 
2..4strcat(str,"а");
                case 
5..9strcat(str,"ов");
            }
        }
    }
    else if (
2592000)
    {
        
floatround(floatdiv(d86400.0), floatround_floor);
        
= (10);
        if(
10 < (100) < 20format(strsizeof(str), "дней");
        else
        {
            switch(
l)
            {
                case 
1format(strsizeof(str), "день");
                case 
2..4format(strsizeof(str), "дня");
                default: 
format(strsizeof(str), "дней");
            }
        }
    }
    else if (
31536000)
    {
        
floatround(floatdiv(d2592000.0), floatround_floor);
        
= (10);
        if(
10 < (100) < 20format(strsizeof(str), "месяцев");
        else
        {
            
format(strsizeof(str), "месяц");
            switch(
l)
            {
                case 
2..4strcat(str"а");
                case 
5..9strcat(str"ев");
            }
        }
    }
    else
    {
        
floatround(floatdiv(d31536000.0), floatround_floor);
        
= (10);
        if(
10 < (100) < 20format(strsizeof(str), "лет");
        else
        {
            switch(
l)
            {
                case 
1format(strsizeof(str), "год");
                case 
2..4format(strsizeof(str), "года");
                case 
5..9format(strsizeof(str), "лет");
            }
        }
    }
    
format(str,sizeof(str), "%d %s"nstr);
    return 
str;