ALLGORITHM ALIME LEAP,
if( (year%4==0 && year%100!=0) || (year%400==0))
4 Réponses :
C'est une année bissextile si le contenu de la première parenthèse (année% 4 == 0 && année% 100! = 0) est vrai, ou si la seconde (année% 400 == 0) est vraie. P >
Année bissextile est une année qui est un multiple entier de 4 (sauf une année uniformément divisible par 100, ce qui n'est pas une année de bissure sauf si uniformément divisible 400). C'est pourquoi nous utilisons les conditions: Année% 4 == 0 && Année% 100! = 0 code> ou Année% 400 == 0 P> p> P> P> P>
Wikipedia : P>
" sur une période de quatre siècles, l'erreur accumulée d'ajouter une journée de saut tous les quatre ans s'élève à environ trois jours supplémentaires. Le calendrier grégorien laisse donc trois jours sauts tous les 400 ans, ce qui est la longueur de son cycle de saut. Cela se fait en laissant tomber le 29 février au cours des trois siècles (multiples de 100) qui ne peuvent pas être exactement divisés par 400. em> " p>" blockQuote>
C'est l'explication de l'algorithme:
1 En 4 ans, on passe des années de baisse.Année% 4 == 0 code>, sera éteint de 3 jours tous les 400 ans.
Nous corrigeons que en supprimant 3 jours en utilisant(année% 100! = 0 || Année% 400 == 0) Code> P>GIVIN La formule:
(année% 4 == 0 && (Année% 100! = 0 || Année% 400 == 0) P> P>
Si vous avez utilisé
&& code>, alors seulement des années i> divisibles par 400 seraient bondus.Année% 400 == 0 code> est une Exception i> à la règle que les années de siècle ne sont pas des années saut.Merci beaucoup, maintenant je comprends.
Notez que l'expression de la question est calculée en calcul - il vérifie si chaque «année non bissociée n'est pas un multiple d'un multiple d'une durée de 4" est divisible par 400. Cela fonctionne, mais cela fait de nombreuses opérations inutiles sur la "année en% 400". Il serait mieux écrit comme
si (année% 4 == 0 && (année% 100! = 0 || Année% 400 == 0)) code>. Combien de fois la division supplémentaire est-elle ouverte au débat - probablement pas très souvent. Mais le code révisé ne vérifie que si l'année est divisible de 400 s'il est connu pour être divisible par 4 (et, en effet, seulement si je suis également divisible par 100).Merci beaucoup @jonathanleffler pour votre explication. Je le garderai à l'esprit.
En outre, consultez Wikipedia sur les années de bissure, et en particulier le Calendrier Julian révisé . Cela ne vous affectera pas dans votre vie, mais (à moins d'une percée médicale surprenante).