Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 9 из 9
  1. #1
    Аватар для Витёк
    Пользователь

    Статус
    Оффлайн
    Регистрация
    26.09.2015
    Сообщений
    215
    Репутация:
    1 ±

    Функция вычитания одной даты из другой

    Добрый день
    Если ли в сампе какая нибуть стандартная(самописная) функция для определенее дней
    к примеру
    GetTimeDate(09.02.2017, 09.04.2017)
    и функция вернёт скока количество дней пройдёт с 09.02.2017 до 09.04.2017
    Думаю понятно объяснил
    Разработка •  • Ч Е Р Н О Б Ы Л Ь •  • Выживание в припяти •

  2. #2
    Аватар для Alpano
    Пользователь

    Статус
    Оффлайн
    Регистрация
    06.02.2017
    Сообщений
    123
    Репутация:
    16 ±
    А UNIX time чем не понравилось?
    Берешь 2 даты в данном формате и запускаешь через
    print(timec($dateone,$datetwo));
     OpenHere
    PHP код:
    timec(timestampcompare = -1) {
        if (
    compare == -1)
            
    compare gettime();
        new 
    Float:= (timestamp compare) ? timestamp compare compare timestamp,
            
    returnstr[48],n;
        if (
    60) {
            
    format(returnstrsizeof(returnstr), "< 1 минуты");
            return 
    returnstr;
        } else if (
    3600) {
            
    floatround(floatdiv(d60.0), floatround_floor);
            
    format(returnstrsizeof(returnstr), "%s",FormatText("минута","минуты","минут",n));
        } else if (
    86400) {
            
    floatround(floatdiv(d3600.0), floatround_floor);
            
    format(returnstrsizeof(returnstr), "%s",FormatText("час","часа","часов",n));
        } else if (
    2592000) {
            
    floatround(floatdiv(d86400.0), floatround_floor);
            
    format(returnstrsizeof(returnstr), "%s",FormatText("день","дня","дней",n));
        } else if (
    31536000) {
            
    floatround(floatdiv(d2592000.0), floatround_floor);
            
    format(returnstrsizeof(returnstr), "%s",FormatText("месяц","месяца","месяцев",n));
        } else {
            
    floatround(floatdiv(d31536000.0), floatround_floor);
            
    format(returnstrsizeof(returnstr), "%s",FormatText("год","года","лет",n));
        }
        
    format(returnstrsizeof(returnstr), "%d %s"nreturnstr);
        return 
    returnstr;
    }
    FormatText(form1[32],form2[32],form3[32],count){
        switch (((
    count>=0)?(count 100):(count*-100)) % 10){
            case 
    1: return form1;
            case 
    2..4: return form2;
            default: return 
    form3;
        }
        return 
    form3;

    MyProject:
    DriftEmpire©

    Ленивые всё делают быстро, чтобы поскорее избавиться от работы.
    И делают качественно, чтобы потом не переделывать.

  3. #3
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Можно использовать возможности MySQL, если это окажется целесообразно
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  4. #4
    Аватар для Витёк
    Пользователь

    Статус
    Оффлайн
    Регистрация
    26.09.2015
    Сообщений
    215
    Репутация:
    1 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Можно использовать возможности MySQL, если это окажется целесообразно
    у меня сервер на mxINI не хочу плагин MySQL подключать

    - - - Добавлено - - -

    Цитата Сообщение от Alpano Посмотреть сообщение
    А UNIX time чем не понравилось?
    Берешь 2 даты в данном формате и запускаешь через

     OpenHere
    PHP код:
    timec(timestampcompare = -1) {
        if (
    compare == -1)
            
    compare gettime();
        new 
    Float:= (timestamp compare) ? timestamp compare compare timestamp,
            
    returnstr[48],n;
        if (
    60) {
            
    format(returnstrsizeof(returnstr), "< 1 минуты");
            return 
    returnstr;
        } else if (
    3600) {
            
    floatround(floatdiv(d60.0), floatround_floor);
            
    format(returnstrsizeof(returnstr), "%s",FormatText("минута","минуты","минут",n));
        } else if (
    86400) {
            
    floatround(floatdiv(d3600.0), floatround_floor);
            
    format(returnstrsizeof(returnstr), "%s",FormatText("час","часа","часов",n));
        } else if (
    2592000) {
            
    floatround(floatdiv(d86400.0), floatround_floor);
            
    format(returnstrsizeof(returnstr), "%s",FormatText("день","дня","дней",n));
        } else if (
    31536000) {
            
    floatround(floatdiv(d2592000.0), floatround_floor);
            
    format(returnstrsizeof(returnstr), "%s",FormatText("месяц","месяца","месяцев",n));
        } else {
            
    floatround(floatdiv(d31536000.0), floatround_floor);
            
    format(returnstrsizeof(returnstr), "%s",FormatText("год","года","лет",n));
        }
        
    format(returnstrsizeof(returnstr), "%d %s"nreturnstr);
        return 
    returnstr;
    }
    FormatText(form1[32],form2[32],form3[32],count){
        switch (((
    count>=0)?(count 100):(count*-100)) % 10){
            case 
    1: return form1;
            case 
    2..4: return form2;
            default: return 
    form3;
        }
        return 
    form3;

    а по подробней как использовать
    Разработка •  • Ч Е Р Н О Б Ы Л Ь •  • Выживание в припяти •

  5. #5
    Аватар для Alpano
    Пользователь

    Статус
    Оффлайн
    Регистрация
    06.02.2017
    Сообщений
    123
    Репутация:
    16 ±
    Цитата Сообщение от Витёк Посмотреть сообщение
    а по подробней как использовать
    Подробнее: тык
    Понятнее:
    1) сохраняем время в переменную ( в шапке создам переменную TIMETEST)
    PHP код:
    TIMETEST gettime(); 
    2) потом берем команду, и суем туда сей код:
    PHP код:
    printf("С момента сохранения времени прошло %s",timec(timestamp)); 
    и смотри что выходит
    MyProject:
    DriftEmpire©

    Ленивые всё делают быстро, чтобы поскорее избавиться от работы.
    И делают качественно, чтобы потом не переделывать.

  6. #6
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Дело не в количестве аккаунтов, а в удобстве работы с ними. Сидеть на аккаунтах - это как до сих пор пользоваться повозкой с лошадью вместо автомобиля и потом думать как бедную лошадь заставить и днём, и ночью тебя возить без отдыха и еды.


    Обе даны переводи в Unix время, находи большую, вычитай из неё меньшую и переводи полученное время в дни
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  7. #7
    Аватар для Витёк
    Пользователь

    Статус
    Оффлайн
    Регистрация
    26.09.2015
    Сообщений
    215
    Репутация:
    1 ±
    Можно закрывать тему сам написал функцию
    Разработка •  • Ч Е Р Н О Б Ы Л Ь •  • Выживание в припяти •

  8. #8
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Нет желания поделиться с другими получившимся кодом?
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  9. #9
    Аватар для Витёк
    Пользователь

    Статус
    Оффлайн
    Регистрация
    26.09.2015
    Сообщений
    215
    Репутация:
    1 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Нет желания поделиться с другими получившимся кодом?
    я чуть чуть по другому сделал
    дни умножаю на 86400
    Ну а вычесляю как-то так
    new days = (тут переменная в которой храню результат при умножении - gettime()) / 86400 +1;
    сразу просто не догодался по такому принципу сделать
    просто вспомнил где-то видел функцию которую я просил в начале теме и был зациклен на ней
    Разработка •  • Ч Е Р Н О Б Ы Л Ь •  • Выживание в припяти •

 

 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •