Pupilla Libertatis
Myślę, politykuję, rozważam, polemizuję, szukam, prowokuję, dyskutuję, dociekam, analizuję, filozofuję.
117 obserwujących
1399 notek
1749k odsłon
354 odsłony

Jak policzyć Wielki Piątek

Wykop Skomentuj4

Ciężar krzyża długo ważę
Zanim dam do poniesienia.
Nim nagradzam, a nie karzę!
Wszak istotą jest zbawienia!

Praczuk

Składam wszystkim wesołych i pogodnych świąt Zmartwychwstania Chrystusa.

A w prezencie przesyłam funkcję w SQL, którą możecie sobie policzyć kiedy wypada Wielki Piątek:

CREATE FUNCTION dbo.Wielkanoc(@rok As Int)
/* SELECT
       dbo.Wielkanoc(a.x + b.x) as Wielki_Piatek
FROM
       (VALUES (0),(1),(2),(3),(4),(5),(6),(7),(8),(9)) as a(x)
       CROSS JOIN
       (VALUES (33),(1405),(2010),(2020),(2030)) as b(x)
ORDER BY
       Wielki_Piatek
*/

RETURNS date
BEGIN
    DECLARE @a int, @b int, @c int, @d int, @miesiac int, @dzien int  
       IF @rok < 32 --Wtedy nie było Wielkanocy!
        SELECT
                    @dzien = 0,
                    @miesiac = 0
       ELSE IF @rok between 33 and 1582 --Metoda Gaussa dla kalendarza juliańskiego
       BEGIN
             SET @a = (@rok % 19 * 19 + 15) % 30
             SET @b = (@rok % 4 * 2 + @rok % 7 * 4 + 6 * @a + 6) % 7     
             IF @a + @b < 10
                    SELECT
                           @dzien = @a + @b + 22,
                           @miesiac = 3
        ELSE
                    SELECT
                           @dzien = @a + @b - 9,
                           @miesiac = 4
       END
       ELSE --Metoda Meeusa/Jonesa/Butchera dla kalendarza gregoriańskiego
       BEGIN
             SET @a = (@rok % 19 * 19 + @rok / 100 - @rok / 100 / 4 - ((@rok / 100 - (@rok / 100 + 8) / 25 + 1) / 3) + 15) % 30
             SET @b = (32 + @rok / 100 % 4 * 2 + @rok % 100 / 4 * 2 - @a - @rok % 100 % 4) % 7
             SET @c = (@rok % 19 + 11 * @a + 22 * @b) / 451
             SET @d = @a + @b - 7 * @c + 114
             SET @dzien = @d % 31 + 1
        SET @miesiac = @d / 31
       END
    RETURN dateadd(day,-2,DATEFROMPARTS(@rok, @miesiac, @dzien))
END

Grzegorz GPS Świderski

Buty  <- poprzednia notka
następna notka -> Kto układa scenariusze?

Tagi: gps65, Wielki Piątek

Wykop Skomentuj4
Ciekawi nas Twoje zdanie! Napisz notkę Zgłoś nadużycie

Więcej na ten temat

Salon24 news

Co o tym sądzisz?

Inne tematy w dziale Technologie