Code html - age avec date.

Statut
N'est pas ouverte pour d'autres réponses.

Tarnak

Elite
Salut, je dois faire un site pour un club de tennis et j'aimerais bien qu'on voit l'âge des membres. J'ai leurs date de naissance, mais j'aimerais bien avoir un script qui calcule l'âge de la personne en comparant sa date de naissance et le jour actuel.
 

Tifox

ou pas
Tu fais ton site en quel langage ?
Tu veux faire ça coté serveur ou coté client ?
 
1er
OP
Tarnak

Tarnak

Elite
Je fais mon site en ASP mais j'imagine qu'un code comme ca se fait en javascript.

Heu... coté serveur ou client c'est quoi exactement?
 

hoshi

Hoshi's Love
Ben le mieu c'est soite en java ou alors en php
www.siteduzero.com p-e que ca se trouve la :)
 

DaBeast

Elite
moi je pencherais pour le php. C'est un truc tout bete que tu demandes en fait....
 

Tifox

ou pas
Faire un site en java, il faut quand même en avoir la nécessité... Et ça ne sert a rien de lui dire de le faire en php si il code en asp. :pfiou:

La différence en du code serveur et du code client, c'est l'endroit ou est effectué le code (donc ou se fait le calcul de l'age à partir de la date).
Pour le coté serveur, le code s'exécute sur le serveur, donc sur le pc ou est hébergé ton site web. Dans ce cas, ça peut être du code php, asp, ...
Pour le coté client, c'est dans ce cas le navigateur internet de la personne qui visite le site web qui exécute le code. Le code est en général en javascript.

Pour ton cas, il vaut mieux le faire coté serveur, donc en asp pour toi. Pour ça, désolé, je ne sais pas beaucoup t'aider, je n'ai pratiquement jamais fait d'asp.


EDIT : j'ai trouvé ça, je sais aps si ça peux t'aider
http://www.aspfr.com/codes/CALCUL-AGE-PERSONNE-ASP-VBSCRIPT_39899.aspx
 
1er
OP
Tarnak

Tarnak

Elite
Merci Tifox, je pense bien que c'est exactement ce que je cherchais :)

Je sais qu'un calcul comme ca est assez simple, mais j'y connais pas grand chose niveau programmation pour site web :)

Je vais essayer de faire fonctionner ca.
 

hoshi

Hoshi's Love
Tifox a dit:
Faire un site en java, il faut quand même en avoir la nécessité... Et ça ne sert a rien de lui dire de le faire en php si il code en asp. :pfiou:
Je dit pas le contraire mais je lui donne des alternatif qui ont plus simple ^^ puis en java tout le site dois pas l'etre tu fous un layer et hop le code dedans :cool:
 

Tifox

ou pas
Tu sais m'en dire un peu plus sur cette histoire de site en java et de layer ? Car moi je pensais a l'artillerie lourde du java (JEE, Application server, ...).
 
1er
OP
Tarnak

Tarnak

Elite
Moi je ne m'y connais pas trop, mais pour faire un bouton de retour à la page précédente, je mets ca "javascript:history.back()"

C'est un simple code javascript comme il en existe plein intégré à mon ASP.
 

Bartdude

Touriste
hoshi a dit:
Je dit pas le contraire mais je lui donne des alternatif qui ont plus simple ^^ puis en java tout le site dois pas l'etre tu fous un layer et hop le code dedans :cool:
N'importe quoi ! Je vois pas en quoi tes alternatives sont plus simples !

Je vois vraiment pas l'intérêt de faire une applet pour un truc aussi stupide... et s'il te dit qu'il code en ASP je vois pas pourquoi tu lui dit de faire du PhP, vu que généralement c'est l'environnement de l'hébergement qui détermine le language qu'on emploie.

Concrètement, ton code est vraiment tout simple Tarnak. Son age c'est l'année actuelle - l'année de naissance, et il faut juste faire -1 si on n'a pas encore dépassé le mois et le jour de naissance.

voilà en VBScript (car je suppose que c'est dans ce language que tu développes), en supposant que la variableBirthdate contient la date de naissance de ton visiteur :

today_day=day(Now)
today_month=month(Now)
today_year=year(now)

birth_day=day(Birthdate)
birth_month=month(Birthdate)
birth_year=year(Birthdate)

age=today_year-birth_year

if(today_month<birth_month OR (today_month=birth_month AND today_day<birthday_day)) then
age=age-1
end if


Avec ca tu peux même facilement intégrer la notion d'anniversaire, avec 1 ou 2 tests.

J'ai pas vérifié le code, je l'ai fait comme ca dans la textbox, mais si t'as un souci n'hésite pas à revenir !
 
1er
OP
Tarnak

Tarnak

Elite
merci, mais je suis débutant la dedans,

en supposant que la variableBirthdate contient la date de naissance de ton visiteur
Je dois faire ca comment? C'est une liste de membre qui doit être modifiable (ajouter, supprimer modifier des membres), donc je fais une table en Access. Dedans je dois faire quoi pour la date d'annif?

3 cellules, jour/mois/année? Ou une seule avec tout? Et je dois écrire ca comment? 01/05/1984 ou bien 1er mai 1984, etc?

Apres cette étape, comment est ce que j'integre ca dans mon code?



Merci :)
 

Bartdude

Touriste
Tarnak a dit:
merci, mais je suis débutant la dedans,

Je dois faire ca comment? C'est une liste de membre qui doit être modifiable (ajouter, supprimer modifier des membres), donc je fais une table en Access. Dedans je dois faire quoi pour la date d'annif?

3 cellules, jour/mois/année? Ou une seule avec tout? Et je dois écrire ca comment? 01/05/1984 ou bien 1er mai 1984, etc?

Apres cette étape, comment est ce que j'integre ca dans mon code?


Merci :)
Le mieux pour la date d'anniversaire est de faire un champ de type Date/Time. Cela te permettra de faire des conditions, comparaisons etc dans tes query, avantage que tu n'as pas si tu utilise 1 ou 3 champs texte.

Ca te compliquera peut-être (mais de toute facon très peu) la tâche lors de l'input des données, mais j'attends de voir si t'as des problèmes pour ne pas expliquer un truc si t'as pas de problème. Pour le format de la date, je crois que ca dépend du format de date sur le serveur qui fait tourner Access... c'est à vérifier en premier lieu. Y'a des chances que ca soit au format européen jj/mm/aaaa

Une fois que tu auras récupéré la valeur de ton champ dans un recordset, il faudra peut-être que tu fasse un casting vers un type date (dans un recordset peu importe le type de ta DB la plupart des champs sont bêtement de type texte) pour utiliser les fonctions day(),month() ou year(). Ca se fait avec la fonction CDate.

Comment intégrer ca dans ton code ? Comme tu veux en fait. L'idéal me paraît de faire une fonction composée en grande partie du code que j'ai posté. Cette fonction prendrais en entrée la date de naissance, et renverrait l'âge.


Si mes explications te paraissent vraiment trop compliquées, je ne vais pas pouvoir continuer à t'aider.
Je n'ai aucun souci à tenter de débugger/dépanner pour un problème précis, mais je ne compte pas non plus donner un cours d'ASP par forum interposé... Et là on parle quand-même de trucs basiques comme accéder à une DB, poser des conditions et accéder à des variables. Si tous ces trucs te sont étrangers, Google est vraiment ton ami pour te former un minimum à l'ASP avant de coder dans ce language.

Vu que tu es débutant et que plus haut tu avouais ne pas connaître la différence entre côté serveur et côté client, je vais quand-même me permettre une question : pourquoi ASP ??? Tu es sur que c'est bien de ca que tu as besoin et que ca tournera sur ton hébergement ?
 
1er
OP
Tarnak

Tarnak

Elite
En fait je ne code pas vraiment, j'utilise dreamweaver. Donc je ne connais pratiquement rien niveau programmation. J'utilise de l'ASP car j'ai besoin de base de donnée.


Voila ce que j'ai pour introduire les dates de naissances de ma DB access:

<div align="left":colere:%=(Recordset1.Fields.Item("date_naissance").Value)%:colere:/div>

Ce que j'aimerais savoir c'est ou je dois incorporer le calcul exactement.
 

Bartdude

Touriste
C'est bien ce que je craignais... je vais pas pouvoir t'aider plus loin avec ton code alors. J'ai rien contre les coups de main, mais là je vais passer plus de temps à tenter de t'expliquer des concepts basiques qu'à résoudre ton problème.
Libre à toi de ne pas mettre les mains dans le camboui et de "coder" à la souris uniquement, mais alors en ce qui me concerne tu devras te contenter des outils que propose Dreamweaver...

Juste un truc, je mettrais ma main à couper que si tu persévères en ASP, tu vas te retrouver coincé. ASP permet effectivement d'accéder à des DB, mais PhP également. Le choix de l'un ou de l'autre se fait souvent en fonction de l'hébergement...
En très gros PhP est aux serveurs web Unix ce qu'ASP est aux serveurs Microsoft, et vu que la majorité des hébergements est en UNIX, généralement on fait de l'ASP parce qu'on n'a pas le choix de faire du PhP (enfin en tout cas ca a été mon cas, le standard de mon entreprise pour les serveurs web étant Windows).

Bref si on t'a pas dit spécifiquement d'utiliser ASP car PhP n'était pas dispo, je te conseille vivement de te tourner vers PhP plutôt... au risque de te retrouver avec un site qui tourne en local mais super chiant à héberger (d'autant qu'ASP est une technologie plus ou moins morte vu que le standard de développement web de Microsoft est maintenant ASP.NET)
 

Totoleheros83

Petit chat
+1 PHP est vachement plus intéressant que ASP pour plusieurs raisons:


- Open source et libre

- immense communauté derrière

- hebergement vachement moins couteux que pour ASP

- etc...


bref PHP powaaaaaaaaaaaaaaaaaaaa
 
1er
OP
Tarnak

Tarnak

Elite
Perso je fais en ASP parce qu'on m'a montré comme ca. J'ai déja regardé un peu le PHP et ca n'a pas l'air énormément différent à première vue (niveau création de DB), donc je ferais sans doute mon 2eme site et les autres avec. Mais bon, en attendant faut que je finisse celui ci ^^

Sinon, j'ai trouvé un truc qui a l'air pas mal, je pense l'avoir bien intégré, mais il me faudrai juste savoir comment l'afficher:

Code:
<%
function age(dat)

dim vAge
dim vNow
dim vDateNaissance
vDateNaissance = (Recordset1.Fields.Item("date_naissance").Value)
vNow = Date
vAge = clng(datediff("d",#12/31/1983#,now)\365.25)
'on enlève un an si la bougie n'a pas été soufflée dans l'année en cours
if DateDiff("d",DateSerial(year(vNow),Month(vDateNaissance),Day(vDateNaissance)),vNow) > 0 then
vAge = vAge - 1
end if
age = vAge

end function
%>
Ensuite comment faire pour afficher 'age' ?

J'ai mis ca dans mon tableau, mais apparement c'est pas bon:
Code:
<td width="14%"><div align="left"><%=CStr(age)%></div></td>
Ca me dis:
Error Type:
Erreur d'exécution Microsoft VBScript (0x800A01C2)
Nombre d'arguments ou affectation de propriété incorrects: 'age'
 

Bartdude

Touriste
Tarnak a dit:
Perso je fais en ASP parce qu'on m'a montré comme ca. J'ai déja regardé un peu le PHP et ca n'a pas l'air énormément différent à première vue (niveau création de DB), donc je ferais sans doute mon 2eme site et les autres avec. Mais bon, en attendant faut que je finisse celui ci ^^
OK. C'est toi qui vois. Et tu as un hébergement donc ? Parce que c'est l'un des plus gros souci à priori...et tu pourras pas dire qu'on t'a pas prévenu si tu te retrouves ensuite avec un site génial en Local mais impossible à héberger...

Pour le code, il devait être bon à la base mais la manière dont tu l'as inclu n'est pas bonne, ainsi que les modifs que tu as faites dedans. C'est ce qui se passe quand on essaie de programmer dans un language sans en connaître même la base. Tu peux prendre celui-ci qui devrait marcher :

au dessus de ton HTML :

Code:
<%
function getAge(Birthdate)

today_day=day(Now)
today_month=month(Now)
today_year=year(now)

birth_day=day(Birthdate)
birth_month=month(Birthdate)
birth_year=year(Birthdate )

age=today_year-birth_year

if(today_month<birth_month OR (today_month=birth_month AND today_day<birthday_day)) then
age=age-1
end if

getAge=age

end function
%>

et dans ton HTML là où tu veux afficher l'âge

<%=getAge(Recordset1.Fields.Item("date_naissance").Value)%>


A priori ca devrait fonctionner... Mais je le répète, t'obstiner à faire de l'ASP à grand coup de bricolages comme cela, c'est le meilleur moyen de perdre ton temps et de faire perdre leur temps à ceux qui voudront bien t'aider... Fais-moi confiance, je parle d'expérience ! Débugger ou modifier un code généré par Dreamweaver (ou autres d'ailleurs) est souvent bien laborieux, voire carrément impossible quand comme toi on n'a aucune notion ni de programmation, ni du language utilisé.
 
1er
OP
Tarnak

Tarnak

Elite
Ouais j'ai déja l'hébergeur et il accepte l'ASP. Niveau codage, je ne fais rien du tout. Tout se passe avec dreamweaver (que je commence à assez bien connaitre), j'avais juste besoin d'une fonction pour calculer l'age, c'est tout.

J'vais essayer ca.
 
1er
OP
Tarnak

Tarnak

Elite
Ca a l'air de marcher nikel, merci ;)
 
Statut
N'est pas ouverte pour d'autres réponses.
Haut