Années bisextilles en VBA

laurent45

XLDnaute Occasionnel
Bonjour le Forum,

Faisant des recherche pour identifier les années bisextilles en VBA, j'ai trouver ce post :
Re: !!! Trouver une année bisextille !!!
Auteur: daniel (---.net.external.hp.com)
Date: 09-04-03 10:52

Algorithme

Déterminer si une année est bisextile
-Spécification
Une année bisextile est une année divisible par 4 sauf si elle est divisible par 100 auquel cas elle doit être divisible par 400.
- Implémentation
bisextile x=(x mod 400=0) si x mod 100=0
=(x mod 4)=0 sinon

ou bisextile x=(x mod 4=0) et (x mod 100=0) ou (x mod 400=0)
Je l'ai adapté comme ça :eek:
Code:
If LaDate Mod 4 = 0 And LaDate Mod 100 = 0 Or LaDate Mod 400 = 0 Then
    FinAnnee = 366
Else: FinAnnee = 365
End If
LaDate étant la date à évaluer et FinAnnee reçoit le nombre de jour de l'année.

Mais, FinAnnee est toujours à 365. J'ai testé avec 2002 et 2006. Rien à faire.

Qu'est-ce que je plante dans mon code ?

Merci
 

Bebere

XLDnaute Barbatruc
bonsoir Laurent,André,Chris

l'importance des parenthèses

Function Bissextile(y As Integer) As Boolean
Bissextile= ((y Mod 400 = 0) Or (y Mod 4 = 0 And y Mod 100 <> 0))
End Function

ou dans l'idée d'André
Public Function EstBissextile(y As Integer)
EstBissextile= Month(DateSerial(y, 2, 29)) = 2
End Function

à bientôt
 

laurent45

XLDnaute Occasionnel
Bonsoir, Chris, André, Bébère,
Bonsoir le Forum,

Merci pour vos réponses.

Je suis arrivé à ça
Code:
If Day(DateSerial(Year(LaDate), 3, 1 - 1)) = 29 Then
    FinAnnee = 366 + 5
Else: FinAnnee = 365 + 5
End If
Basé sur l'idée d'André.

Mais les fonction sont bien aussi. Je n'ai besoin de ce calcul qu'une fois, donc je vais rester sur mon exemple.

Mais tes function, Bébère, pourront servir à d'autres. ;)

Merci

@+
 

Discussions similaires

Statistiques des forums

Discussions
312 927
Messages
2 093 688
Membres
105 783
dernier inscrit
Maya33