Passage heure d'été et heure hiver
Répondre à la discussion
Affichage des résultats 1 à 14 sur 14

Passage heure d'été et heure hiver



  1. #1
    zanzeoo

    Passage heure d'été et heure hiver


    ------

    SAlut TLM

    Comment calculer la date du passage d'heure d'été et d'heure d'hiver en fonction de l'année...(formule mathematique )
    Merci

    -----

  2. #2
    matthias

    Re : Passage heure d'été et heure hiver

    Tu peux partir d'ici pour avoir les bases sur lesquelles faire le calcul:
    http://www.legifrance.gouv.fr/WAspad...o=ECOI0100131A

  3. #3
    zanzeoo

    Re : Passage heure d'été et heure hiver

    Oui merci je sais mais moi c le chiffre compri entre 1 et 31 en fonction date qui m'interesse...

  4. #4
    matthias

    Re : Passage heure d'été et heure hiver

    Ce n'est pas très dur.
    Imaginons que le calendrier n'ait jamais changé depuis l'année 0. C'est faux, mais ce n'est pas grave, les formules seront justes fausses pour les dates antérieures au changement.
    On prends l'équivalence suivante :
    Di=0, Lu=1, Ma=2, Me=3, Je=4, Ve=5, Sa=6
    Soit x la valeur du jour du 31 Mars 0
    On sait que:
    Les années divisibles par 4 sont bisextiles,
    sauf les années divisibles par 100 qui ne sont pas bisextiles,
    sauf les années divisibles par 400 qui sont bisextiles
    On sait aussi que 365 = 1 [7]

    Donc le jour du 31 Mars de l'année n est donné par:



    Je vois que le 31 Mars 2000 était un Vendredi (5) donc:
    x + 2000 + 500 - 20 + 5 = x + 2485 = x [7]
    donc x=5
    c'est à dire que l'on considère que le 31 Mars 0 était un Vendredi même si c'est faux.

    Conclusion, pour connaître le jour du dernier Dimanche de Mars de l'année n, tu calcules:



    Le jour du mois est donné par : 31 - y

    Exemple: année 5487
    5 + 5487 + 1371 -54 +13 = 6822 = 4 [7]
    31 - 4 = 27
    Le dernier Dimanche du mois de Mars de l'année 5487 tombe le 27.

    J'espère que je n'ai pas fait d'erreur. Je te laisse faire pour le passage à l'heure d'hiver.

  5. A voir en vidéo sur Futura
  6. #5
    curieuxdenature

    Re : Passage heure d'été et heure hiver

    Bonjour,
    j'ai une méthode plus axée programme, dérivée de celle de Gauss, valable pour toutes dates allant de +1752 à +8000

    La variable j doit être renseignée: 31 pour ce qui nous interresse
    la variable m est le mois
    a est l'année.
    m = m - 2: If m < 1 Then m = m + 12: a = a - 1
    siecle = Int(a / 100)
    a = a - (siecle * 100)
    b = Int(2.6 * m - 0.19) + j + a + Int(a / 4) + Int(siecle / 4) - siecle * 2
    jour = Int((b / 7 - Int(b / 7)) * 7 + 0.1)
    Pour le 31 mars 2005 on trouve jour= 4 donc jeudi car dimanche = 0
    le calcul est simple 31-4 = 27 mars 2005 est le dernier dimanche de mars 2005

    Le 31 octobre 2005 est le jour N°1 de la semaine.
    le passage à l'heure d'hiver sera le dimanche 31-1 octobre 2005

    On n'a pas de complications de conversion de dates car les définitions sont simples.

  7. #6
    curieuxdenature

    Re : Passage heure d'été et heure hiver

    pourquoi faire simple...

    pour le basic standard, jour = b mod(7)

  8. #7
    invitec9ce98a3

    Re : Passage heure d'été et heure hiver

    POUR L'HEURE D'ETE

    b=2+31+année-2000+int(année-2000/4)+5-40
    on obtient b=année-2002+int (année-2000/4)
    pour les année >a 2002 ça marche mais si b est negatif c'est bizzard !!!

  9. #8
    invite9ee3f30c

    Re : Passage heure d'été et heure hiver

    Bonjour,
    Je ne suis pas un pro en maths, et j'aimerais savoir s'il est possible de calculer les dates été et hiver avec des formules simples comme avec excel ?
    Que signifie E et (7) ?

    merci d'avance

  10. #9
    DODU1314

    Re : Passage heure d'été et heure hiver

    Restez simples! Seul paramètre à rentrer: l'année.

    Infos:
    Date changement heure d'été: dernier dimanche de mars (mois 3)
    Date changement heure d'hiver: dernier dimanche d'octobre (mois 10)

    Calcul:
    Pour l'été: date= 31- (33+k)modulo 7
    Pour l'hiver: date= 31- (51+k)modulo 7
    . avec: k=valeur entière de ((497/400)xannée)

    Exemple pour 2015:
    k=entier ((497/400)x2015)= 2503 ................. Remarque: 497/400=1.2425
    date été= 31-(33+2503)modulo 7= 31-(2536)modulo7= 31-2= 29 ........... Soit le dimanche 29 mars.
    date hiver= 31-(51+2503)modulo 7= 31-(2554)modulo7= 31-6=25 .......... Soit le dimanche 25 octobre.

    (N)modulo7 se calcule en faisant: ((N/7)-entier(N/7))x7 -> En gros, on garde le reste de N/7. On peut aussi utiliser une fonction Excel ou autre prévue pour ça...

    En prime, tout ceci est facilement programmable, même en assembleur. Ceux que souhaitent réaliser une horloge avec un module GPS à la place d'un DCF77 qui est difficile à capter comprendront!

  11. #10
    DAUDET78

    Re : Passage heure d'été et heure hiver

    Déterrage de 2005 ! Un record .....
    J'aime pas le Grec

  12. #11
    Duke Alchemist

    Re : Passage heure d'été et heure hiver

    Bonjour.
    Citation Envoyé par DAUDET78 Voir le message
    Déterrage de 2005 ! Un record .....
    Non, le déterrage n'est que de 2011 (message #8) qui lui était un déterrage de 2005

    Et ce n'est pas le seul déterrage de 2005 en ce moment...

    Duke.

  13. #12
    laroche220

    Re : Passage heure d'été et heure hiver

    Bonjour

    Sympa le déterrage !!!
    fort pratique ce code tout simple.

    Seul soucis, il se plante d'un jour sur les années bissextiles comme 2012 ou 2016 ; l'algo du #9 donne le lundi juste après le dimanche recherché.
    Ça complique un poil mais ça reste super simple comme code ! Ça sort d'où ? c'est quoi la logique derrière ces constantes sorties de l'espace ?

    Merci

  14. #13
    sylvainc2

    Re : Passage heure d'été et heure hiver

    Le calendrier grégorien avance de 497 jours à tous les 400 ans: 5 jours par 4 ans consécutifs, donc 500 jours en 400 ans, moins les 3 jours en trop des 3 années multiples de 100 qui ne sont pas bissextiles. Et comme 497 est multiple de 7, le calendrier se répète à tous les 400 ans.

    Donc k = int(497/400 * année) est le nombre de jours que le calendrier a avancé par rapport à l'an 0 qu'on considère dans le calendrier grégorien. Cet an zéro peut-être aussi 1600, 2000, etc à cause de la période de 400 ans.

    En 2000, le dernier dimanche de mars est le 26. Le 31 est un vendredi, jour 5 de la semaine en comptant à partir de dimanche=0. Donc 31 - ( (k + (31-26)) mod 7) va donner la date du dernier dimanche (31-26=5, dans le code dodu1314 fait plutôt k+33 au lieu de k+5, ca marche aussi car 33=5 mod 7, mais ce n'est pas nécessaire de prendre 33. Je suppose qu'il ne comprend pas vraiment ce code, il a dû faire un copier-collé de quelque part).

    Même chose pour octobre 2000: le dernier dimanche est le 29, et le 31 est un mardi, jour = 2. Donc 31 - ((k+(31-29)) mod 7) donne le dernier dimanche d'octobre. Ici aussi il fait k+51 au lieu de k+2, ca change rien car 51=2 mod 7.

    Les erreurs sont dues à l'arrondi dans le calcul de k, pour les années bissextiles il faut arrondir à l'entier supérieur et non inférieur. Il y aussi, pour les années 2000, des erreurs à partir de 2037. Mais c'est du code compact, qui est bon pour 20 ans encore, je suppose que ca lui suffit.

  15. #14
    jphk

    Re : Passage heure d'été et heure hiver

    En fait le decalage de jour de la semaine est de moins un jour par année et de 0 pour les années bissextiles
    on peut se caler à partir de 2000 mais aussi à partir de l'année théorique 0

    pour le passage en heure d'ete jour de mars phete = 25+(7002-(annee)-int((annee)/4))%7; ( % pour modulo, on pourrait se contenter de 2 au lieu de 7002 mais c'est pour éviter d'avoir des modulos de nombre négatifs )
    pour le passage en heure d'hiver jour d'octobre phhiver= 25+(7005-(annee)-int((annee)/4))%7;

    valable jusqu'en 2099 après on retombe sur la formule de Matthias.

Discussions similaires

  1. heure exacte
    Par invitecab9d383 dans le forum Mathématiques du collège et du lycée
    Réponses: 5
    Dernier message: 07/08/2007, 17h00
  2. heure d'hiver
    Par Cécile dans le forum Actualités
    Réponses: 8
    Dernier message: 10/12/2003, 17h40