Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.

Реклама


**Как получить V.I.P** (Перейти)
Чтобы заказать рекламу на Pro-Pawn.Ru, обращайтесь в Skype.
Баннерная реклама 200руб/мес, Текстовая 100руб/мес.
Показано с 1 по 3 из 3

Тема: CalculateAge

  1. #1
    Аватар для Osetin
    •Администратор•

    Статус
    Оффлайн
    Регистрация
    26.03.2013
    Адрес
    Pro-Pawn.Ru
    Сообщений
    3,428
    Репутация:
    1079 ±

    CalculateAge

    Возвращает возраст из указанной даты(дд,мм,гггг)
    Код:
    PHP код:
    GetAge(daymonthyear){
        new 
    curdaycurmonthcuryear;
        
    getdate(curyearcurmonthcurday);
        return 
    curyear year _:(month>curmonth || month==curmonth && day>curday);

    Пример использования:
    PHP код:
    if(dialogid == 10500)
    {
        new 
    string[20], daymonthyear;
        
    sscanf(inputtext"ddd"daymonthyear);
        
    format(stringsizeof(string), "Вам %d лет"GetAge(daymonthyear));
        return 
    SendClientMessage(playerid, -1string);

     Тесты

    Код:
    PHP код:
    #include <a_samp>

    stock GetAge(daymonthyear){
        new 
    curyearcurmonthcurday;
        
    getdate(curyearcurmonthcurday);
        return    
    curyear year - ((month>curmonth || month==curmonth && day>curday) ? 0);
    }

    main(){
        
    printf("0.0.0      - %d\n"GetAge(000));
        
    printf("23.03.1994 - %d\n"GetAge(2331994));
        
    printf("23.07.1994 - %d\n"GetAge(2371994));
        
    printf("23.08.1994 - %d\n"GetAge(2381994));
        
    printf("23.05.1994 - %d\n"GetAge(2351994));
        print(
    "");

    Результат:
    Код:
    0.0.0      - 2013
    23.03.1994 - 19
    23.07.1994 - 19
    23.08.1994 - 18
    23.05.1994 - 19
    P.S.: Тесты проводились 23.07.2013

    Автор: Daniel_Cortez
    Последний раз редактировалось Daniel_Cortez; 20.01.2014 в 16:15. Причина: немного упростил функцию //DC

  2. #2
    Аватар для Daniel_Cortez
    new fuck_logic[0] = EOS;

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    1,662
    Репутация:
    2144 ±
    В некоторых случаях CalculateAge будет работать неправильно.
    Пример:
    Код:
    дата рождения: 12.08.2009
    сегодня: 22.07.2013
    результат: 4 года (когда должно быть 3)

    Обычно для вычисления возраста я использую свою функцию:
    PHP код:
    GetAge(daymonthyear){
        new 
    curdaycurmonthcuryear;
        
    getdate(curyearcurmonthcurday);
        return 
    curyear year _:(month>curmonth || month==curmonth && day>curday);

    P.S.: Администрации просьба вынести данную функцию в 1-й пост.
    Последний раз редактировалось Daniel_Cortez; 25.07.2013 в 13:27.
    Индивидуально в PM и Skype по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).
    SA-MP 0.4 is a lie

  3. 3 пользователя(ей) сказали cпасибо:
    Airon007 (26.07.2013)Osetin (22.07.2013)Ruskadance (23.07.2013)
  4. #3
    Аватар для Airon007
    Пользователь

    Статус
    Оффлайн
    Регистрация
    29.03.2013
    Адрес
    Республика Мордовия г.Саранск
    Сообщений
    485
    Репутация:
    46 ±
    полезная функция :)
    Пробыл модератором на портале Pro-Pawn.Ru 3 месяца и 13 дней
    Ровно 105 дней провёл на посту СуперМодератора

 

 

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

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

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

Ваши права

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