Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| la date ok, mais c'est quel jour de la semaine ? | |
| | Auteur | Message |
---|
Tengaal
Nombre de messages : 13 Age : 50 Localisation : France Date d'inscription : 12/01/2010
| Sujet: la date ok, mais c'est quel jour de la semaine ? Jeu 11 Fév 2010 - 15:56 | |
| voilà un petit programme qui, à partir d'une date donnée (entre 1900 et 2999), trouve à quel jour de la semaine elle correspond. Cela prend en compte également les années bissextiles. Le code est assez commenté je pense pour que chacun puisse suivre le principe des calculs. j'ai testé des dates personnelles passées dont je connaissais le jour, et en effet, j'obtiens le bon jour à chaque fois. - Code:
-
rem obtenir le jour de la semaine d'après une date donnée entre 1900 et 2999 dim mois(12) dim nom_jour$(7) dim x,y,z dim j,m,a dim bissextile
rem jour, mois et année donnée par l'utilisateur exemple : 21/08/1987 j=21 m=8 a=1987
rem on initialise le tableau des noms de jours nom_jour$(0)="Samedi" nom_jour$(1)="Dimanche" nom_jour$(2)="Lundi" nom_jour$(3)="Mardi" nom_jour$(4)="Mercredi" nom_jour$(5)="jeudi" nom_jour$(6)="Vendredi"
bissextile=0: rem année non bissextile par défaut. (=1 si bissextile)
rem on teste si l'année est bissextile rem une année est bissextile quand : rem elle est divisible par 4 mais non par 100 rem ou bien si l'année est divisible par 400. if frac(a/4)=0 if frac(a/100)>0 then bissextile=1: rem oui, année bissextile end_if if frac(a/400)=0 then bissextile=1: rem oui, année bissextile
rem replissage du tableau mois(N) contenant le code des mois mois(1)=1: if bissextile=1 then mois(1)=0: rem janvier mois(2)=4: if bissextile=1 then mois(1)=3: rem fevrier mois(3)=4: rem mars mois(4)=0: rem avril mois(5)=2: rem mai mois(6)=5: rem juin mois(7)=0: rem juillet mois(8)=3: rem aout mois(9)=6: rem septembre mois(10)=1: rem octobre mois(11)=4: rem novembre mois(12)=6: rem decembre
rem on garde les 2 derniers chiffres de l'annee et on divise ce nombre par 4 x=0 if a<2000 x=a-1900 else x=a-2000 end_if rem on ne prend que la valeur entière de la division. y=int(x/4)
rem on additionne x + y + code du mois + numero du jour. rem on garde le reste de la division de l'ensemble par 7. z=(x+y+mois(m)+j) z=z-(int(z/7)*7)
rem si l'année donnée est égale ou supérieure à 2000 on retire 1 à ce résultat if a>1999 then z=z-1
rem il ne reste plus qu'à identifier le nom du jour print "La date du "+str$(j)+"/"+str$(m)+"/"+str$(a) if bissextile=1 then print "est une année bissextile et" print "c'est un "+nom_jour$(z)+" !"
end
Dernière édition par Tengaal le Jeu 11 Fév 2010 - 16:34, édité 1 fois | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: la date ok, mais c'est quel jour de la semaine ? Jeu 11 Fév 2010 - 16:27 | |
| | |
| | | Tengaal
Nombre de messages : 13 Age : 50 Localisation : France Date d'inscription : 12/01/2010
| Sujet: Re: la date ok, mais c'est quel jour de la semaine ? Jeu 11 Fév 2010 - 16:44 | |
| il y avait déjà eu une solution oui et alors ? nous savons tous ici qu'en programmation, il y a toujours différentes possibilité de coder, il n'y a pas de solution unique et universelle, chaque proposition de code à ses avantages et ses inconvénients, et puis comme nous sommes sur un forum de partage, le but est justement de proposer des codes différents. je propose juste une autre façon de programmer ce cas de figure. Déjà j'ai programmé le code non pas comme une application à part entière mais comme une portion de code implémentable dans n'importe quelle application, donc réduite au stricte essentiel. Le code que tu mentionne ne calcul pas de la même façon que dans mon exemple, pour preuve il présentait un bug pour une date définie en 1949, alors que mon exemple fonctionne dans tous les cas et avec la prise en compte des années bissextiles, je ne sais pas vraiment si le principe de calcul de l'autre solution le prenait en compte également, à vérifier. Et puis mon exemple est court et très commenté, je pars du principe qu'un code posté ici doit servir également aux autres à comprendre/apprendre pour ceux qui démarrent en programmation. bref mon bout de code ici est une solution parmi d'autres... | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: la date ok, mais c'est quel jour de la semaine ? Jeu 11 Fév 2010 - 17:44 | |
| Mais... ce n'était pas un reproche !!! et justement une façon de dire ce qui tu dis toi-même: ta solution est une solution parmi d'autres... Et comme tu n'as pas lu le post cité en entier, tu n'as pas vu que le bug en question était corrigé et que les années bissextiles étaient évidemment prises en compte. | |
| | | Tengaal
Nombre de messages : 13 Age : 50 Localisation : France Date d'inscription : 12/01/2010
| Sujet: Re: la date ok, mais c'est quel jour de la semaine ? Jeu 11 Fév 2010 - 18:18 | |
| j'ai vu dans le code que le bug de cette date était corrigé justement, et plutôt bizarrement car ce n'est pas l'algorithme qui a été revu, mais juste une condition rectificative sur cette fameuse année 1949... non je n'ai pas lu tous les messages suivant, car déjà en lisant le code, j'ai trouvé mon programme suffisamment différent pour le poster ici. mais encore une fois, quand je poste quelque chose, je m'arrange d'abord pour regarder si ça n'a pas déjà été posté, ou si mon post apporte quelque chose par rapport à ce qui a déjà été dis sur le sujet traité. étant modérateur sur d'autres forums, je sais que c'est un des soucis fréquent pour les nouveaux membres de poster des choses déjà abordées. je sais bien que ce n'était pas un reproche pas de soucis, mais c'est juste ta tournure que j'ai trouvé étonnante: "(...) mais il y avait déjà eu des solutions à ce problème" en lisant j'ai eu l'impression que ma proposition de code était inutile et n'avait pas sa place ici, car une solution avait déjà été traitée, donc considérée comme unique et suffisante... mais bon, je sais que l'écrit sur les forums peut prêter souvent à de nombreux malentendus. | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: la date ok, mais c'est quel jour de la semaine ? Jeu 11 Fév 2010 - 22:09 | |
| Désolé si tu as mal interprété ma remarque... peut-être formulée un peu brutalement il est vrai. C'était juste pour dire qu'il avait déjà existé un autre topic sur le même sujet et que ça pourrait t'intéresser d'y jeter un coup d'oeil. Sans arrière-pensée d'aucune sorte. D'ailleurs, dans la 2ème page du topic en question il y avait une autre solution (déposée par ton serviteur...) qui je pense se rapproche plus de la tienne que la première.
PS et maintenant il y a la solution de Klaus... | |
| | | Tengaal
Nombre de messages : 13 Age : 50 Localisation : France Date d'inscription : 12/01/2010
| Sujet: Re: la date ok, mais c'est quel jour de la semaine ? Jeu 11 Fév 2010 - 23:06 | |
| bon ben en tout cas, désormais, personne ne peut bloquer pour intégrer dans une application un système de gestion des jours avec les différents codes proposés ici ! il n'y a que l'embarras du choix pour la méthode ! | |
| | | Contenu sponsorisé
| Sujet: Re: la date ok, mais c'est quel jour de la semaine ? | |
| |
| | | | la date ok, mais c'est quel jour de la semaine ? | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |