Inscription / Connexion Nouveau Sujet
Niveau autre
Partager :

trouver le jour selon une date

Posté par kmno4 (invité) 25-02-07 à 20:02

Bonjour/Bonsoir, connaissez vous une méthode simple et concrète pour retrouver le jour à partir d'une date?

J'ai vu qu'il fallait connaitre les décalalages avec les mois car 1900 tomber un Lundi, j'ai pas trop compris. ALors c'est pour cela que je vous le demande.


Je vous remercie beaucoup de l'aide que vous pourriez m'apporter


Respectueusement,

Kmno4

Posté par
patrice rabiller
re : trouver le jour selon une date 25-02-07 à 20:06

Bonsoir

Tu trouvera une méthode et des explications ici

Posté par kmno4 (invité)re : trouver le jour selon une date 26-02-07 à 18:31

merci beaucoup pour ce lien, mais un truc que je ne comprend pas :
Int(146097A÷400) +
Int((306(M-3)+5)÷10)+J®F ces valeurs d'ou viennent t'elles?

Merci

Posté par kmno4 (invité)re : trouver le jour selon une date 26-02-07 à 18:54

excusez moi mais j'essaie à faire ca

18/01/1988

1+12=13

1988-1=1987

((146097(1987))/400 + (306(13-3)/5)/10)+ 18 = X

x-7(x/7)= D

et j'ai D= 0 sachant que ca tombe un Lundi, j'ai essayé avec 29/01/1988 et c'est la meme chose pourquoi?

Merci bcp

Posté par
patrice rabiller
re : trouver le jour selon une date 26-02-07 à 20:47

L'explication de la formule est assez compliquée. En gros, je considère l'origine des dates au 1er janvier de l'an 0 (qui n'a jamais existé psuiqu'on est passé directement du 31 décembre de l'an -1 au 1er janvier de l'an +1 ).
Ainsi, si on prend une date comme 26 février 2007, le nombre de jours écoulés est égal depuis le 01/01/0000 au nombre F si compliqué à calculer. Ensuite, il suffit de faire une division par 7 et de regarder le reste. Si on sait que le 01/01/0000 est un mardi, alors tous les multiples de 7 seront des mardis, tous les multiples de 7 plus 1 seront un mercredi, tous les nombres de la forme 7n+2 (n entier) seront un jeudi, etc ...

Si tu veux une explication plus détaillée sur le calcul de F, il faudra que je prenne plus de temps pour te répondre ...

Dans ton message tu parles de D. Ce nombre n'est pas utilisé par le programme...

Regarde le détail du calcul sur la date du 26 février 2007 :

J=26
M=2
A=2007
Comme M est inférieur à 3, on remplace M par M+12, soit M=14 et on remplace A par A-1 soit A=2006. (février 2007 est le 14e mois de 2006 en quelque sorte)

(146097A)/400=732676,455  (avec A=2006 et non 2007)
Donc la partie entière de ce nombre vaut 732676 : Int(146097A/400)=732676

(306(M-3)+5)/10=337,1  (avec M=14 et non M=2)
Donc la partie entière de ce nombre vaut 337 : int((306(M-3)+5)/10)=337

On ajoute J (qui vaut 26) : 732676+337+26=733039

On range ce nombre dans la variable F : c'est le nombre de jours écoulés entre le 01/01/0000 et le 26/02/2007.

F/7=733039/7=104719,8571... (ça ne tombe pas juste : nous ne sommes pas un mardi)
Int(F/7) vaut donc 104719 (Int signifie "partie entière")
7(Int(F/7))=7104719=733033.
F-7Int(F/7) est donc égal à 733039-733033, soit 6, donc B=6.

Nous sommes donc, aujourd'hui 26 février 2007, un lundi. Ouf ! Heureusement que la calculatrice va plus vite que nous pour faire tous ces calculs !

Posté par kmno4 (invité)re : trouver le jour selon une date 26-02-07 à 22:02

ah je viens de comprendre, j'utilisait la virgule (en utilisant la réponse qui était en mémoire), ca m'intéresserait bien de savoir d'où provient le F, si vous voulez bien.

Je vous remercie bcp

Respectueusement,

Kmno4

Posté par
patrice rabiller
re : trouver le jour selon une date 27-02-07 à 05:52

Bonjour, kmno4 (c'est pas du permanganate de potassium ça ?)

Voici le détail du calcul de F

Chaque année, il y a au moins 365 jours. Donc pour l'année A, il faut prendre 365A.
Tous les 4 ans, il y a une année bissextile. Il faut donc ajouter A/4 (ou 0,25 A)
Depuis le 15 octobre 1582, en Fance (avènement du calendrier grégorien) :
- Tous les 100 ans, l'année bissextile est supprimée. Il faut donc soustraire A/100 (ou 0,01 A)
- Tous les 400 ans, l'année bissextile est rétablie. Il faut donc ajouter A/400 (ou 0,0025 A).
Au total le nombre de jours écoulés depuis le 01/01/000 jusqu'au 01/01/A est égal à 365A+A/4-A/100+A/400=(146097A)/400 (ou 365,2425 A). Évidemment comme ce nombre doit être entier, on en prend la partie entière.

Le plus dur à expliquer, c'est le nombre de jours écoulés entre le 1er janvier et le 1er du mois M. Comme le mois de février est variable, on préfère compter le nombre de jours écoulés entre le 1er mars et le 1er du mois M.
On peut utiliser un tableau :
4$\(\array{Mois & M & Jours\\mars&3&0\\avril&4&31\\mai&5&61\\juin&6&92\\juillet&7&122\\aout&8&153\\septembre&9&184\\octobre&10&214\\novembre&11&245\\decembre&12&275\\janvier&13&306\\fevrier&14&337}\)

Si on place les points de coordonnées (M,Jours) dans un plan, on peut remarquer qu'ils sont quasiment alignés sur la droite d'équation Jours=30,6M-91,8. Cette équation peut s'écrire : Jours = 30,6(M-3).(voir image ci-dessous).
Le problème, c'est que si on prend directement la partie entière de (30,6(M-3)), l'arrondi se fait tantôt en-dessous, tantôt au-dessus. Pour obtenir un arrondi correct, il faut prendre la partie entière de (30,6(M-3)+0,5) ou encore de (306(M-3)+5)/10).

Il ne reste plus qu'à ajouter le nombre de jours écoulés depuis le début du mois.
Donc, en résumé, le nombre de jours écoulés depuis le 01/03/000 (et non pas le 01/01/000) est donc :
F=Int((146097A)/400) + Int((306(M-3)+5)/10) + J où M et A sont éventuellement corrigés lorsqu'il s'agit de janvier ou février ...

Voilà, c'est à peu près tout

trouver le jour selon une date



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !