Dans le cadre d'une question posée sur ce forum, j'ai développé une fonction SQL Server permettant de tester si une années transmise est Bissextile ou non.
La règle pour une année bissextile est disponible ici :
-
http://dispourquoipapa.free.fr/histoire/hi0010.htm
Pour simplifier toutes les années divisibles par 4 sont bissextiles sauf si on tombe sur un centenaire. Le seul cas ou une année centenaire est bissextile est lorsque celle-ci est divisible par 400.
Source / Exemple :
---------------------------------------------------------------------
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
---------------------------------------------------------------------
ALTER FUNCTION TEST_BISSEXTILE
(
@YEAR INT
)
RETURNS BIT
AS
-- Vérification si l'année transmise est une année bissextile
BEGIN
-- @YEAR est l'année considérée
-- RENVOI 1 SI VRAI ET 0 SI FAUX
DECLARE @RESULTAT BIT
SET @RESULTAT = 0
IF ISNUMERIC(@YEAR)=0
RETURN 0
DECLARE @RESTESECULAIRE INT
DECLARE @RESTEBISSEXTILE INT
SET @RESTESECULAIRE = @YEAR % 100
IF @RESTESECULAIRE = 0
BEGIN
SET @RESTEBISSEXTILE = @YEAR % 400
IF @RESTEBISSEXTILE = 0
SET @RESULTAT = 1
END
ELSE
BEGIN
SET @RESTEBISSEXTILE = @YEAR % 4
IF @RESTEBISSEXTILE = 0
SET @RESULTAT = 1
END
RETURN @RESULTAT
END
---------------------------------------------------------------------
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
---------------------------------------------------------------------
-- Pour tester cette fonction :
SELECT dbo.TEST_BISSEXTILE(1996) AS BISSEXTILE
-- et
SELECT dbo.TEST_BISSEXTILE(2001) AS BISSEXTILE
Conclusion :
Bon Coding
Romelard Fabrice.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.