This would really be better off in Stackoverflow, or another page. Presumably, you assumed some of the calculations rely on concepts in Astronomy, which as far as I can tell having gone through them, they do not with the exception of the concept of leap years; which I think is general enough that it doesn't really mandate being in Astronomy. Regardless:
The equation is a little abstract, so probably the easiest way to understand it would be through understanding each bit of data. Let's start with N2, I'll come back to N1:
N2 = floor((month + 9) / 12)
N2 will equal 0 if month is less than 3, and will equal 1 if it is greater. This formula is to determine whether February has passed.
N3 = (1 + floor((year - 4 * floor(year / 4) + 2) / 3))
N3 will be equal to 2 if the year is not a leap year, and will be equal to 1 if it is a leap year. The math here is just to determine whether the current year happens to be a leap year.
N = N1 - (N2 * N3) + day - 30
Now we take N1 (which I haven't covered yet) and we subtract it by the product of N2 and N3, which will equal 0 if we haven't reached March, or if we have it will be 1 on a leap year, and 2 on a non-leap year. We then add the number of the current day of the month, and subtract 30. So what does N1 do?
N1 = floor(275 * month / 9)
Well, lets look at the values returned compared to days in a non-leap year:
Month N1 Day Diff
1. 30 31 -1
2. 61 59 +2
3. 91 90 +1
4. 122 120 +2
5. 152 151 +1
6. 183 181 +2
7. 213 212 +1
8. 244 243 +1
9. 275 273 +2
10. 305 304 +1
11. 336 334 +2
12. 366 365 +1
A bit messy, right? Now, remember that you're subtracting 30 from the total at the end to get N, and we're adding in the current date. This means that although we multiply our current month to get N1, we're actually using this to calculate the dates from the months prior to our current month! Thus if we take the value of N1, subtract it by 30, and compare it to the preceding month, the chart will come out like this:
Month N1 Day Diff
1. 31 31 0
2. 61 59 +2
3. 92 90 +2
4. 122 120 +2
5. 153 151 +2
6. 183 181 +2
7. 214 212 +2
8. 245 243 +2
9. 275 273 +2
10. 306 304 +2
11. 336 334 +2
12. --- 365 ---
From this, you can see that the value of N1 will equal 2 greater than the actual date for any day in which it is March or later. This is perfect, as N2 is already a formula determining this for catching leap days. Note, these would all equal +1 on a leap year, as in another day would have been added in February. Thus coming back to the final calculation:
N = N1 - (N2 * N3) + day - 30
We take N1
and subtract in by the value of (N2 * N3)
, which will be 2 on a non-leap year if February has passed, 1 on a leap year, or 0 if we haven't passed February. We add in the days in the current month, and we subtract 30 to get the offset in N1
values.
This should consistently give you the day of the year. As for special significance, they're being used only for mathematical properties. Dividing a number between 1 and 12 by 9, just so happens to equal less than 1 for numbers less than 3, and greater than or equal to 1 and less than 2 all the way up to 12, which is why it is we have started March. The 275 * (month / 9)
formula I'm not sure where they came up with. AFAIK, they have no special meaning to time or the Sun-Earth system - rather, they were chosen because they calculate well in this particular usage.