Nombre de jours, mois et années depuis la naissance

Contenu du snippet

D'après la date d'anniversaire, le script compte le nombre d'années, de mois et de jours qui se sont passés depuis la naissance.
Il écrit la réponse comme suit:
par exemple le 20/03/2012
anneesMoisJoursDepuisNaissance(2012,1,17)); affiche 2 mois 3 jours
anneesMoisJoursDepuisNaissance(1982,3,31)); affiche 29 ans 11 mois 20 jours
anneesMoisJoursDepuisNaissance(2001,1,20)); affiche 11 ans 2 mois
anneesMoisJoursDepuisNaissance(2002,3,20)); affiche 10 ans aujourd'hui
anneesMoisJoursDepuisNaissance(2011,1,21)); affiche 1 an 1 mois 27 jours

Source / Exemple :


function anneesMoisJoursDepuisNaissance(theyear,themonth,theday){
var maxDaysByMonthArray=new Array(31,28,31,30,31,30,31,31,30,31,30,31);
var ay=theyear;
var am=themonth;
var ad=theday;

var today=new Date();
var ty=today.getYear();
ty+=1900;
var tm=today.getMonth()+1;
var td=today.getDate();

var dy=0;
var dm=0;
var dd=0;
var text="";
var joursDepuisMoisAvant=0;
var joursDuMoisAvant=0;
var moisPrescedent=0;

var moisAnneeAvant=0;

//text="</br></br></br>Naissance "+theyear+" "+themonth+" "+theday+".</br>Auj ty"+ty+"tm"+tm+"td"+td+"</br>";
// différence d'année
dy=ty-ay;
if(tm<=am)//mois et jour pas arrivés
{
	if(td<ad){ dy=ty-ay-1;}//on enlève un an
}

//différence de mois

if(tm>am)//mois annif passé
{
	dm=tm-am;
	if(td<ad)//jour pas arrivé
	{
		dm=tm-am-1;
	}
}
else //mois annif pas arrivé
{
	moisAnneeAvant=12-am; //on ajoute les mois de l'année d'avant
	dm=tm+moisAnneeAvant;

	
}
if(tm==am) //mois de l'annif en cours
	{
		if(td<ad)//jour pas arrivé
		{ 
			moisAnneeAvant=12-am;
			dm=tm+moisAnneeAvant-1;
		}
		else
		{
			dm=tm-am;//0
		}
	}
//différence de jour
dd=td-ad;
if(td<ad)//jour pas arrivé
{	if(tm==1){moisPrescedent=12;}
	else {moisPrescedent=tm-1;}
	joursDuMoisAvant=maxDaysByMonthArray[moisPrescedent-1];
	joursDepuisMoisAvant=joursDuMoisAvant-ad;
	
	if(joursDepuisMoisAvant<0){joursDepuisMoisAvant=0;}//ex:si on est né le 30 mais qu'il y a 28jours le mois avant
	dd=td+joursDepuisMoisAvant;
}
//text+="</br> ca donne "+dy+" ans "+dm+" mois "+dd+" jours </br>";
//ecriture
if(dy>=1){
  text+=dy + " an"
  if(dy>1){
    text+="s";
  }
}

if(dm>=1){
  text+= " " + dm + " mois";
}

if((dd==0)&&(dm==0)){
  text+= " aujourd'hui"
}
if(dd>=1){
  text+= " " + dd + " jour"
  if(dd>1){
    text+="s"
  }
}

return text;
}

Conclusion :


Pour l'utiliser: <script>document.write(anneesMoisJoursDepuisNaissance(2012,1,17));</script>

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.