Uskrs
Tuesday, 02.09.2008 – ZidarPronasao sam kod za izracunavanje Uskrsa, po pravoslavnom i po katolickom kalendaru. Izvor:
http://www.tek-tips.com/faqs.cfm?fid=5075
Pravoslavni:
CREATE FUNCTION dbo.OEaster (@Yr as int) RETURNS datetime AS -- SELECT dbo.OEaster(2007) BEGIN Declare @I int, @J int, @Metonic int, @EMo int, @EDay int, @LeapAdj int Set @LeapAdj=@Yr/100-@Yr/400-2 Set @Metonic=@Yr % 19 Set @I=(19*@Metonic+15) % 30 Set @J=(@Yr+@Yr/4+@I) % 7 Set @EMo=3+(@I-@J+40)/44 Set @EDay=@I-@J+28-31*(@EMo/4) Return DateAdd(dd,@LeapAdj,cast(str(@EMo)+'/'+str(@EDay)+'/'+str(@Yr) as datetime)) /*This algorithm is based upon work done by JM Oudin in 1940.*/ End GO
Katolicki:
CREATE FUNCTION dbo.Easter (@Yr as int) RETURNS datetime AS BEGIN Declare @Cent int, @I int, @J int, @K int, @Metonic int, @EMo int, @EDay int Set @Cent=@Yr/100 Set @Metonic=@Yr % 19 Set @K=(@Cent-17)/25 Set @I=(@Cent-@Cent/4-(@Cent-@K)/3+19*@Metonic+15) % 30 Set @I=@I-(@I/28)*(1-(@I/28)*(29/(@I+1))*((21-@Metonic)/11)) Set @J=(@Yr+@Yr/4+@I+2-@Cent+@Cent/4) % 7 Set @EMo=3+(@I-@J+40)/44 Set @EDay=@I-@J+28-31*(@EMo/4) Return cast(str(@EMo)+'/'+str(@EDay)+'/'+str(@Yr) as datetime) /*This algorithm is from the work done by JM Oudin in 1940 and is accurate from year 1754 to 3400.*/ END GO
Lep dodatak standardnom setu SQL funkcija za racunanje vremena. 🙂