ngilbert
-
15 mars 2001 à 19:21
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 2021
-
31 mai 2007 à 08:49
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
Public Function IsLeapYear(ByVal vzInput As Variant) As Boolean
Dim nYear As Integer
If VarType(vzInput) = vbDate Then
nYear = DatePart("YYYY", vzInput)
ElseIf IsNumeric(vzInput) Then
nYear = vzInput
Else
Exit Function
End If
IsLeapYear = IsDate(nYear & "-02-29")
End Function
possibilité de lui passer une date (la fonction considerera l'année de la date fournie)
ou de passer l'année :
a = IsLeapYear ( #10/19/2006# )
ou
a = IsLeapYear ( 2006 )
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 30 mai 2007 à 23:37
Bonjour à tous les trois...
C'est bien la peine d'avoir VB entre les mains, si c'est pour en arriver à de tels calculs.
VB offre quand même du mille fois plus simple, non ?
Je vous laisse chercher (je préfère)
Réfléchissez un peu...
un indice (inutile d'aller chercher midi à quatorze heure à partir de la définition d'une année bissectile alors que VB gère parfaitement les dates ...!!!)
Amitiés.
houla ngilbert ... ta devise doit être pkoi faire simple quand on peut faire compliqué ! ;-)
en tout cas g une solution bcp plus simple :
Function IsBissextile(Annee As Long) As Boolean
If Annee Mod 4 0 And (Annee Mod 100 <> 0 Or Annee Mod 400 0) Then IsBissextile = True
Else IsBissextile = False
End If
End Function
Le code contient des erreurs, voici ma correction
Function IsBissextile(Annee As Integer) As Boolean
IsBissextile = False
If Annee Mod 4 0 Then IsBissextile True
If Right(Str(Annee), 2) = "00" Then
If Annee Mod 400 <> 0 Then IsBissextile = False
End If
End Function
31 mai 2007 à 08:49
http://www.codyx.org/snippet_determiner-si-annee-est-bissextile_249.aspx#810
Public Function IsLeapYear(ByVal vzInput As Variant) As Boolean
Dim nYear As Integer
If VarType(vzInput) = vbDate Then
nYear = DatePart("YYYY", vzInput)
ElseIf IsNumeric(vzInput) Then
nYear = vzInput
Else
Exit Function
End If
IsLeapYear = IsDate(nYear & "-02-29")
End Function
possibilité de lui passer une date (la fonction considerera l'année de la date fournie)
ou de passer l'année :
a = IsLeapYear ( #10/19/2006# )
ou
a = IsLeapYear ( 2006 )
30 mai 2007 à 23:37
C'est bien la peine d'avoir VB entre les mains, si c'est pour en arriver à de tels calculs.
VB offre quand même du mille fois plus simple, non ?
Je vous laisse chercher (je préfère)
Réfléchissez un peu...
un indice (inutile d'aller chercher midi à quatorze heure à partir de la définition d'une année bissectile alors que VB gère parfaitement les dates ...!!!)
Amitiés.
19 août 2001 à 21:33
en tout cas g une solution bcp plus simple :
Function IsBissextile(Annee As Long) As Boolean
If Annee Mod 4 0 And (Annee Mod 100 <> 0 Or Annee Mod 400 0) Then IsBissextile = True
Else IsBissextile = False
End If
End Function
15 mars 2001 à 19:21
Function IsBissextile(Annee As Integer) As Boolean
IsBissextile = False
If Annee Mod 4 0 Then IsBissextile True
If Right(Str(Annee), 2) = "00" Then
If Annee Mod 400 <> 0 Then IsBissextile = False
End If
End Function