George Kosmidis

C#: Calculating Orthodox and Catholic Easter

Some time ago I was called about an online calendar for a company’s portal. The need was to inform employees about public holidays for the requested year. In Greece, some of those holidays are static, meaning they occur the exact same date each year, and some are based on the Orthodox Easter, so they move from date to date. There are a lot of online services that can return these information, but I thought I should give it a go and try writing the Orthodox Easter calculation offline. Saying that, I found the algorithm online, and since I was there I also found the Catholic Easter algorithm.

This is a post for the calculation of the two Christianity events, and in a later post I will also publish the public holidays calculation.

(Have in mind that since the methods return DateTime, “every possible year” is not quite accurate! And besides this, both algorithms have problems after year 4200. You can read more about it here: http://en.wikipedia.org/wiki/Computus)

Read More »C#: Calculating Orthodox and Catholic Easter

SQL Server: How to simulate DROP TRIGGER IF EXISTS

I usually store triggers, store procedures, functions, queries etc in sql files in an SVN repository. I then use a simple app I wrote, that just opens each file and executes it. The problem of course is CREATE and ALTER. I can’t use CREATE because the same trigger might already be there. On the other hand I couldn’t use ALTER because some triggers might be new.

Since there is no DROP TRIGGER IF EXISTS, I came up with this:

Read More »SQL Server: How to simulate DROP TRIGGER IF EXISTS

SQL Server: Weird behavior with CONTAINSTABLE, ISABOUT and weighted terms

I came across the following weird behaviour in an ISABOUT query in SQL SERVER, that involves weight keyword and the final rank of the results. I want to describe that behaviour here, just in case some has a good explanation over it!

This posts assumes some basic knowledge of querying with full text search

Read More »SQL Server: Weird behavior with CONTAINSTABLE, ISABOUT and weighted terms