Code html - age avec date.

Discussion dans 'Web, design' créé par Tarnak, 9 Mai 2007.

Statut de la discussion:
Fermée.
  1. Offline
    Tarnak »Tarnakeur«
    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.
    Tarnak, 9 Mai 2007
    #1
  2. Offline
    Tifox ou pas
    Tu fais ton site en quel langage ?
    Tu veux faire ça coté serveur ou coté client ?
    Tifox, 9 Mai 2007
    #2
  3. Offline
    Tarnak »Tarnakeur«
    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?
    Tarnak, 9 Mai 2007
    #3
  4. Offline
    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 :)
    hoshi, 9 Mai 2007
    #4
  5. Offline
    DaBeast Elite
    moi je pencherais pour le php. C'est un truc tout bete que tu demandes en fait....
    DaBeast, 9 Mai 2007
    #5
  6. Offline
    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
    Tifox, 9 Mai 2007
    #6
  7. Offline
    Tarnak »Tarnakeur«
    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.
    Tarnak, 9 Mai 2007
    #7
  8. Offline
    hoshi Hoshi's Love
    Je dit pas le contraire mais je lui donne des alternatif qui ont plus simple :p puis en java tout le site dois pas l'etre tu fous un layer et hop le code dedans :cool:
    hoshi, 9 Mai 2007
    #8
  9. Offline
    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, ...).
    Tifox, 10 Mai 2007
    #9
  10. Offline
    Tarnak »Tarnakeur«
    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.
    Tarnak, 10 Mai 2007
    #10
  11. Offline
    Bartdude Touriste
    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 !
    Bartdude, 10 Mai 2007
    #11
  12. Offline
    Tarnak »Tarnakeur«
    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 :)
    Tarnak, 10 Mai 2007
    #12
  13. Offline
    Bartdude Touriste
    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 ?
    Bartdude, 10 Mai 2007
    #13
  14. Offline
    Tarnak »Tarnakeur«
    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.
    Tarnak, 10 Mai 2007
    #14
  15. Offline
    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)
    Bartdude, 10 Mai 2007
    #15
  16. Offline
    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
    Totoleheros83, 10 Mai 2007
    #16
  17. Offline
    Tarnak »Tarnakeur«
    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 :p

    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'
    Tarnak, 10 Mai 2007
    #17
  18. Offline
    Bartdude Touriste
    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é.
    Bartdude, 10 Mai 2007
    #18
  19. Offline
    Tarnak »Tarnakeur«
    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.
    Tarnak, 10 Mai 2007
    #19
  20. Offline
    Tarnak »Tarnakeur«
    Ca a l'air de marcher nikel, merci ;)
    Tarnak, 10 Mai 2007
    #20
Statut de la discussion:
Fermée.