判斷是不是閏年

判斷是否爲閏年的方法不少,如:html

指定日期,判斷其所屬年份是否爲閏年http://www.javashuo.com/article/p-qujonrzg-dz.html
C#或VB.NET判斷指定的年份是否爲閏年https://www.cnblogs.com/insus/archive/2012/06/05/2537446.htmlide

其實,咱們還有一個方法,就是知道了2月份的天數,或是最後一天是28號仍是29號,從而也知道這一年是平年仍是閏年。post

由於平年28,閏年29.url

T-SQL獲取二月份天數https://www.cnblogs.com/insus/archive/2011/04/22/2025019.htmlspa

如何獲取月份的天數https://www.cnblogs.com/insus/archive/2011/09/10/2173028.html3d

獲取某一日期所在月份的第一天日期或最後一天日期http://www.javashuo.com/article/p-ndtcwdmf-cq.htmlcode

某一日期所在月份的天數http://www.javashuo.com/article/p-dlewnvgn-cc.htmlhtm

獲取某一日期所在月份的第一天日期或最後一天日期http://www.javashuo.com/article/p-ndtcwdmf-cq.htmlblog


 

SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:      Insus.NET
-- Create date: 2019-05-14
-- Update date: 2019-05-14
-- Description: 判斷是否爲閏年
-- =============================================

CREATE FUNCTION [dbo].[svf_IsLeapYear] ( 
    @Year INT
)
RETURNS BIT
AS
BEGIN
    DECLARE @rtv BIT = 0,
            @February_1st DATETIME = CAST((CAST(@Year AS NVARCHAR(4)) + N'-02-01') AS DATETIME)
    
    --IF DAY([dbo].[svf_LastDayOfTheMonth](@February_1st)) = 29
    IF DAY(DATEADD(DAY,-1,DATEADD(MONTH,DATEDIFF(MONTH,0,@February_1st) + 1,0))) = 29

        SET @rtv = 1
    RETURN @rtv
END
GO
Source Code

 

相關文章
相關標籤/搜索