begin process at 2012 02 06 01:26:48
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Date & Heure

 > CALCUL VOTRE ÂGE !!

CALCUL VOTRE ÂGE !!


 Information sur la source

Note :
4 / 10 - par 5 personnes
4,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Date & Heure Niveau :Initié Date de création :04/11/2004 Vu :14 414

Auteur : pasqal

Ecrire un message privé
Site perso
Commentaire sur cette source (8)
Ajouter un commentaire et/ou une note

 Description

voici mon code sans prétention pour calculer votre âge de façon précise, je me mets en ligne car je n'en ai pas trouver tout fait donc si cela peut aider qqu'un d'autre.
De plus, je ne l'ai pas testé sur différentes dates, je compte donc sur votre sagacité pour l'améliorer. Voilà

Source

  • <html><head><title>Combien ai-je vécu ??</title>
  • <SCRIPT LANGUAGE="JavaScript">
  • /* détermine le nombre de jour de février si bissextile */
  • function fevrier(i)
  • {if ((!(i % 4) && (i % 100)) || !(i % 400))
  • {return 29;
  • }
  • else
  • {return 28;
  • }
  • }
  • /* cette fonction donne le nbr de jours de chaque mois, celle- ci peut-être remplacé par un array, je
  • pense*/
  • function jourabs(frg,ann)
  • { var nj = 0;
  • switch (frg)
  • { case 1 : nj = 31; break;
  • case 2 : nj = fevrier(ann); break;
  • case 3 : nj = 31; break;
  • case 4 : nj = 30; break;
  • case 5 : nj = 31; break;
  • case 6 : nj = 30; break;
  • case 7 : nj = 31; break;
  • case 8 : nj = 31; break;
  • case 9 : nj = 30; break;
  • case 10 : nj = 31; break;
  • case 11 : nj = 30; break;
  • case 12 : nj = 31; break;
  • }
  • return nj;
  • }
  • function delai(annee,mois,jour,heure,min)
  • {
  • var date_fin=new Date(annee,mois-1,jour,heure,min); /* date de départ */
  • var date_jour=new Date(); /* aujourd'hui*/
  • var tps=(date_jour.getTime()-date_fin.getTime())/1000; /* différence en millisecondes */
  • var nbjtotal=Math.floor(tps / 86400); /* le nb de jour */
  • nbjtotal2 = nbjtotal;
  • tps=tps % 86400;
  • moisdujour = date_jour.getMonth()+1;
  • xcd = mois;
  • nbmois =0;
  • nban =0;
  • do
  • {
  • nbjourmois = jourabs(xcd,annee); /* détermine le nbr de jour du mois en cours*/
  • if (nbjtotal - nbjourmois >= 0) /* si le nbr de total - le nbr du jour du mois
  • est supérieur à zero */
  • { nbjtotal = nbjtotal - nbjourmois; /* alors on retranche le
  • nbjour du mois du nbr de jour total */
  • nbmois = nbmois+1; /* et donc ajoute un mois au compteru mois*/
  • if (nbmois - 12 >= 0) /* si le nbr de mois est supérieur à 12 */
  • { nbmois -= 12; /* alors on en enleve 12 */
  • nban += 1; /* et on ajoute une année au compteur
  • d'années */
  • }
  • }
  • xcd += 1; /* on passe au mois suivant */
  • if (xcd > 12) /* il n'y a que 12 mois donc le 13 eme et passé à 1*/
  • {xcd =1;
  • }
  • }while (nbjtotal > 30); /* on repete jusqu'a ce que le nbr de jour soit inférieur à 1
  • mois*/
  • var h=Math.floor(tps / 3600); // le nb d'heure
  • tps=tps % 3600;
  • var minute=Math.floor(tps/60); // le nb minute
  • tps=tps % 60;
  • var s=Math.floor(tps);
  • if (nbjtotal != 1)
  • oiu = " jours ";
  • else
  • oiu = " jour ";
  • if (h != 1)
  • plk = " heures ";
  • else
  • plk= " heure ";
  • if (nban != 1)
  • bnh = " ans ";
  • else
  • bnh= " an ";
  • var txt= nban+bnh+nbmois+" mois "+nbjtotal+oiu+h+plk+minute+" min et "+s+" sec"; /* la chaîne de
  • retour */
  • return txt;
  • }
  • function disp_delai()
  • {
  • document.forms["mail"].elements[0].value=delai(1975,01,26,03,30); /* ici la date de naissance à
  • modifier */
  • setTimeout("disp_delai()",1000);
  • }
  • </SCRIPT>
  • </head>
  • <body text="#000000" alink="#FF8C00" link="#FF8C00" vlink="#FF8C00" onLoad="disp_delai()">
  • <FONT FACE="Arial" SIZE="-1" COLOR="navy">
  • <CENTER>
  • <BIG><B><font color="#000000" size="+6">Combien ai-je vécu ??</font></B></BIG>
  • </CENTER><BR><BR>
  • <FORM NAME="mail" METHOD=GET>
  • <div align="center">je suis né, il y a :
  • <INPUT NAME="RESTE" SIZE=50 MAXLENGTH=50>
  • <BR>
  • <BR>
  • </div>
  • </FORM>
  • </FONT>
  • </body>
  • </html>
<html><head><title>Combien ai-je vécu ??</title> 

<SCRIPT LANGUAGE="JavaScript">

/* détermine le nombre de jour de février si bissextile */
function fevrier(i)
	{if ((!(i % 4) && (i % 100)) || !(i % 400))
		{return 29;
		}
	 else
		{return 28;
		}
	}

/* cette fonction donne le nbr de jours de chaque mois, celle- ci peut-être remplacé par un array, je 

pense*/

function jourabs(frg,ann)
{ var nj = 0;
	switch (frg)
	 { 	case 1 : nj = 31; break;
	 	case 2 : nj = fevrier(ann); break;
		case 3 : nj = 31; break;
		case 4 : nj = 30; break;
		case 5 : nj = 31; break;
		case 6 : nj = 30; break;
		case 7 : nj = 31; break;
		case 8 : nj = 31; break;
		case 9 : nj = 30; break;
		case 10 : nj = 31; break;
		case 11 : nj = 30; break;
		case 12 : nj = 31; break;
	}
return nj;
}
	
function delai(annee,mois,jour,heure,min)
{
	var date_fin=new Date(annee,mois-1,jour,heure,min); /* date de départ */
	var date_jour=new Date(); /* aujourd'hui*/
	var tps=(date_jour.getTime()-date_fin.getTime())/1000; /* différence en millisecondes */
	
	
	var nbjtotal=Math.floor(tps / 86400);     	/* le nb de jour */
	nbjtotal2 = nbjtotal;
	tps=tps % 86400;
	
	moisdujour = date_jour.getMonth()+1;
	xcd = mois;
	nbmois =0;
	nban =0;

	do
		{
	 	nbjourmois = jourabs(xcd,annee);   /* détermine le nbr de jour du mois en cours*/
			if (nbjtotal - nbjourmois >= 0)  /* si le nbr de total - le nbr du jour du mois 

est supérieur à zero */
				{ 	nbjtotal = nbjtotal - nbjourmois; /* alors on retranche le 

nbjour du mois du nbr de jour total */
					nbmois = nbmois+1;  /* et donc ajoute un mois au compteru mois*/
				if (nbmois - 12 >= 0) /* si le nbr de mois est supérieur à 12 */
				 	{ 	nbmois -= 12; /* alors on en enleve 12 */
						nban += 1; /* et on ajoute une année au compteur 

d'années */
					}
			}		
	xcd += 1;  /* on passe au mois suivant */
			if (xcd > 12)  /* il n'y a que 12 mois donc le 13 eme et passé à 1*/
				{xcd =1;
				}

		}while (nbjtotal > 30); /* on repete jusqu'a ce que le nbr de jour soit inférieur à 1 

mois*/
		

	var h=Math.floor(tps / 3600);		//  le nb d'heure
	tps=tps % 3600;
	var minute=Math.floor(tps/60);		//  le nb minute
	tps=tps % 60;
	var s=Math.floor(tps);
	
	if (nbjtotal != 1)
		oiu = " jours ";
		else
		oiu = " jour ";
	if (h != 1)
		plk = " heures ";
		else
		plk= " heure ";
	if (nban != 1)
		bnh = " ans ";
		else
		bnh= " an ";
	
	var txt= nban+bnh+nbmois+" mois "+nbjtotal+oiu+h+plk+minute+" min et "+s+" sec"; /* la chaîne de 

retour */
	return txt;
}

function disp_delai()
{
	document.forms["mail"].elements[0].value=delai(1975,01,26,03,30); /* ici la date de naissance à 

modifier */
	setTimeout("disp_delai()",1000);
}

</SCRIPT>

</head>

<body text="#000000" alink="#FF8C00" link="#FF8C00" vlink="#FF8C00" onLoad="disp_delai()">
<FONT FACE="Arial" SIZE="-1" COLOR="navy">
<CENTER>
  <BIG><B><font color="#000000" size="+6">Combien ai-je vécu ??</font></B></BIG>
</CENTER><BR><BR>


<FORM NAME="mail" METHOD=GET>
  <div align="center">je suis né, il y a : 
    <INPUT NAME="RESTE" SIZE=50 MAXLENGTH=50>
    <BR>
    <BR>
  </div>
</FORM> 

</FONT>
</body>
</html>

 Conclusion

Bonne continuation à tous !


 Sources de la même categorie

Source avec Zip CALENDRIER ANNUEL UNIVERSEL AVEC SAINTS DU CALENDRIER ET FÊT... par 007Julien
OBTENIR LE NOMBRE DE JOURS D'UN MOIS SUIVANT SON ANNÉE par hugolegrand
SAINT DU JOUR par tefa24600
Source avec Zip Source avec une capture NIPCLOCK 1.2 par neep
COMPTE À REBOURS POUR ÉVÉNEMENTS À RÉPÉTITION par CSIBern

Commentaires et avis

Commentaire de coucou747 le 05/11/2004 23:26:47 administrateur CS

un peu abusé autant de lignes pour un simple calcul d'age non ?

Bon, ce que tu aurais pu faire c'ets calculer le nombre de jours entre deux dates puis ensuite convertir en années moi jours...

Commentaire de pasqal le 06/11/2004 12:35:47

trop de lignes ?
Et avec ton nombre de jours, comment tu fais l'affichage du style "1 an 6 mois 12 jours et..." ? Je te laisse réflechir.
En plus "c'ets calculer le nombre de jours entre deux dates puis ensuite convertir en années moi jours..." c'est exactement ce qui est fait !

Commentaire de coucou747 le 07/11/2004 11:01:49 administrateur CS

bien, j'y réfléchois et je poste dès que j'aurais terminé...

Commentaire de coucou747 le 30/12/2004 17:47:16 administrateur CS

euh... dsl j'ai pas pris le temps de me pencher sur ton thème... pourtant c'ets pas très compliqué...

ensuite tu fais une convertion avec des %

Commentaire de cbeyls le 22/01/2005 01:36:14

J'avoue n'avoir rien compris à la source. C'est... assez loufoque. Je crois que tu as mélangé 2 idées très différentes.

Soit il s'agit de calculer un âge en années, mois, jours, heures, minutes, secondes, alors il ne faut pas convertir les 2 dates en objets Date() et les soustraire, puisqu'il ne faut pas tenir compte des années bissextiles. Une année reste une année, bissextile ou pas. C'est comme si je demandais: combien d'années se sont écoulées entre le premier janvier 1900 et le premier janvier 2000 ? Vous me répondez: 100 ans tout pile! Et pourtant durant ces 100 ans, il y aura eu 24 années bissextiles, pourtant on ne dit pas qu'il s'est écoulé 100 ans et 24 jours car ces années bissextiles on les compte comme des années ordinaires, pas comme si elles étaient égales à une année et un jour (si vous me suivez toujours?).

Soit, 2e cas possible, il faut calculer l'âge en nombre de jours exacts, là effectivement le fait qu'une année soit bissextile ou pas a de l'importance dans le compte. Mais justement, dans ce cas il suffit de soustraire 2 objets Date et on aurait la durée exacte entre les 2, on ne doit même pas se tracasser des calculs de bissextiles ou pas, c'est java qui le calcule pour nous, il suffit de convertir le résultat en jours, heures, minutes et secondes.

Alors, maintenant, à toi de décider laquelle de ces 2 choses tu veux calculer et ré-écrire le code en conséquence. Je veux bien le faire si tu veux, ça ne doit pas être bien long.

Commentaire de puppetmastr le 13/06/2006 10:40:43

merci c'est ce que je cherchais deseperement !!!

Commentaire de Tanaka56 le 20/02/2007 12:32:36

L'explication de CBEYLS est très judicieuse. En effet si on entre une année de naissance équivalente à 18 ans: exemple né le 20/02/1989 et la date du jour 20/02/2007 on trouve 18 ans et 4 jours, le pÔve gars à raté son anniversaire de 4 jours. Donc pas de cadeaux.
Il ne faut pas compter les années bissextiles. En fait je cherche une solution pour orienter un internaute en fonction de son âge au jour près. Si quelqu'un à une solution merci d'avance. Cordialement.

Commentaire de Mercure1964 le 11/05/2007 20:18:17

Il doit y avoir un petit bugg.
Pour la date de naissance 06.05.1964 et aujourd'hui:11.05.2007 j'ai encore 42ans alors qu'en realité j'en ai 43a, 0mois et 5jours.
Cordialement

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,045 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales