Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

SQL SERVER - TESTER SI UNE DATE TRANSMISE EST BISSEXTILE OU NON


Information sur la source



Description

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

  • ---------------------------------------------------------------------
  • 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
---------------------------------------------------------------------
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.
 

Commentaires et avis

Aucun commentaire pour le moment.

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

pb de date [ par Sbt ] Bonjour a tous,Je cherche a afficher tousles jeudi entre deux dates données ???Avez-vous une idée à me proposer ?Merci d'avance Seb création d'une automatique d'une base de données SQLServer [ par MokhTelnet ] bonjourj'ai besoin de savoir comment on peut créer une base de données SQLServer lors de l'installation d'une application.mon client ne veux se charge Commande DOS pour SQLServer 7 [ par MokhTelnet ] y a t'il une commande dos pour SQLSERVER 7 ?(comme la commande sqlplus pour oracle) création automatique d'une base de données SQLServer [ par MokhTelnet ] bonjour j'ai besoin de savoir comment on peut créer une base de données SQLServer lors de l'installation d'une application. mon client ne veux se char un gran pb de redondance [ par mehdi911 ] Mehdi j ai table assid_emp code : code assid matricule :emp date_assid : date d absence Problème SQLSERVER/php [ par LeJulius ] Je travaille actuellement sous SQL SERVER 2000 en lien avec du PHP 4.2.0 Mon problème est le suivant :Mes tables sql contiennent des caractères accent salut , jai probleme de date [ par dstar2004 ] jaimerai bien de savoir comment ajouter un clandrier ou un tableau des dates dans le composant DBCOMBOBOX pour evite lecrire de la date a chaque fois contrôle de date avec gestion des années bissextiles [ par akramodje ] SVP , j'ai besoin d'un code me permettant le contrçole de date avec surtout la prise en compte d'année bissextiles!merçi de me repondre!!! DATETIME SQL SERVER AU SECOURS !!!!!! [ par MACHOMAN ] bonjour, j'ai plusieurs pb avec les datetime sous sql server : 1 - j'ai deux champs datetime, dans le premier il y a une date dans le second une heure Problème de date [ par kidpigeyre ] Voila mon problème : Je dois afficher les emplacements libres d'un certain type entre deux dates (date_debut et date_fin) en sql access.Voic


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 1,108 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.