Visualizzazione dei risultati da 1 a 2 su 2

Discussione: calcolare età

  1. #1

    calcolare età

    per piacere
    Vorrei fare una pagina con i miei dati è possibile mettere uno script che ti dia come risultato es "in questo momento ho 21 anni, 5mesi, 29 giorni"? Se non eseste sarei felice di calcolare solo l'età.Grazie

  2. #2
    Non l'ho potuto testare a fondo, quindi non si escludono bachi, comunque prova questo

    codice:
    //imposto la data di nascita anno/mese/giorno
    //per il mese: 0=genn, 1=febbr, 2=marzo ecc...)
    nato = new Date(1962,8,10);
    //imposto la data di oggi
    oggi = new Date();
    //calcolo quanti giorni sono passati dividendo i millisecondi trascorsi
    //per 86400000 (millisecondi in un giorno)
    diff = (oggi - nato)/86400000;
    //calcolo da quanti giorni è iniziato l'anno in corso
    attuale = new Date(oggi.getFullYear(),0,1);
    diffAtt = Math.ceil((oggi - attuale)/86400000);
    //calcolo quanti anni sono passati dividendo i giorni totali 
    //per 1461 cioè 3 anni normali + uno bisestile e moltiplicando per 4
    anni = Math.floor(((diff)/1461)*4);
    //calcolo i mesi completi dall'ultimo compleanno
    if(nato.getMonth() > oggi.getMonth()){
    	mesi = 12 - ((nato.getMonth() - oggi.getMonth()));
    }else{
    	mesi = ((oggi.getMonth() - nato.getMonth()));
    }
    if(nato.getDate() > oggi.getDate()){
    	mesi = mesi - 1;
    }
    if(mesi == 12){
    	mesi = 0;
    }
    //calcolo i giorni dall'ultimo "complemese"
    if(oggi.getMonth() == 0){
    	meseBorn = 11;
    	annoBorn = oggi.getFullYear() - 1;
    }else{
    	meseBorn = oggi.getMonth() - 1;
    	annoBorn = oggi.getFullYear();
    }
    oneAgo = new Date(annoBorn,meseBorn,oggi.getDate());
    oldComple = new Date(annoBorn,meseBorn,nato.getDate());
    totG = Math.floor((oggi - oneAgo)/86400000);
    comple = new Date(oggi.getFullYear(),nato.getMonth(),nato.getDate());
    giorni = Math.round(((oggi - oldComple)/86400000));
    if(giorni == totG){
    	giorni = 0;
    }else if(giorni > totG){
    	giorni = giorni - totG;
    }
    trace("In questo momento ho "+ anni +" anni, "+ mesi +" mesi e "+ giorni +" giorni.");
    "...non è detto che sia tardi se non guardi che ora è..."

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.