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

Тема: CalculateAge

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

    Статус
    Оффлайн
    Регистрация
    26.03.2013
    Адрес
    ♔Osetia, Vladikavkaz♔
    Сообщений
    3,432
    Репутация:
    1093 ±

    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. Пользователь сказал cпасибо:
    Kovshevoy (05.02.2019)
  3. #2
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2589 ±
    В некоторых случаях 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.
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

  4. 4 пользователя(ей) сказали cпасибо:
    Airon007 (26.07.2013) Kovshevoy (05.02.2019) Osetin (22.07.2013) Ruskadance (23.07.2013)
 

 

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

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

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

Ваши права

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