Visualizzazione dei risultati da 1 a 3 su 3

Discussione: script calcolo età.

  1. #1
    Utente bannato
    Registrato dal
    Dec 2009
    Messaggi
    43

    script calcolo età.

    Salve, ho questo script:

    Codice PHP:
     <?php
     
    function calcola_eta($datanascita)
     {
     
    // Ricavo giorno, mese e anno
     
    list($giorno$mese$anno) = explode("/"$datanascita);

     
    // Calcolo anni
     
    $eta date('Y') - $anno;


     if (
    date('m') <$mese)
     
    $eta--;

     
    // Stessa cosa per i giorni
     
    elseif (date('d') <$giorno)
     
    $eta--;

     return 
    $eta;
     }
     echo 
    "".calcola_eta("29/01/1982")."";
     
     
    ?>
    Mi dite perchè mi da che ho 26 anni, invece ho 27?.

    come posso risolvere il problema?

    grazie.

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505

    Re: script calcolo età.

    L'errore sta qui
    Codice PHP:
     // Stessa cosa per i giorni
     
    elseif (date('d') <$giorno)
     
    $eta--; 
    Si devono confrontare 29/1/1982 e 26/12/2009
    Codice PHP:
    <?php
    function calcola_eta($datanascita)
    {
    // Ricavo giorno, mese e anno
    list($giorno$mese$anno) = explode("/"$datanascita);

    // Calcolo anni
    $eta date('Y') - $anno//vale 27

    if (date('m') <$mese//condizione falsa, passo all'else if
       
    $eta--;
    // Stessa cosa per i giorni
    else if (date('d') <$giorno//condizione vera, ma la condizione è sbagliata, non deve essere comunque eseguita
      
    $eta--; //ora $eta vale 26

    return $eta;
    }
    echo 
    "".calcola_eta("29/01/1982")."";

    ?>
    cambia la condizione dell'else if con questo:
    Codice PHP:
    else if (date('d') <$giorno && date('m') == $mese
    Per fortuna sei nato il 29 e oggi non è il 29, 30 o 31. Se fossi nato il primo del mese non ti saresti mai accorto di questo bug provando con la tua data di nascita.

  3. #3
    Utente bannato
    Registrato dal
    Dec 2009
    Messaggi
    43
    uuu, grazie mille.
    Buon anno nuovo.

    Ciao.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.