calendar of 12months when year is entered

• 05-05-2008, 05:54 AM
veena
calendar of 12months when year is entered
hi everyone,

i need to take year and month as input and generate a calendar for 12months,
i need to rite a jsp page with servlet

can any 1 helpplz
• 05-05-2008, 06:03 AM
Eranga
Did you Goole it. There should be some mathematical way to find it.
• 05-05-2008, 06:08 AM
veena
yes i did and cudnt find anything
• 05-05-2008, 06:23 AM
Eranga
Ok, here is a way.

Code:

`N = d + 2m + [3(m+1)/5] + y + [y/4] - [y/100] + [y/400] + 2`
d - days of a monthe
m - moth id(from 1 to 12 respectively)
y - year

Do the calculations and find the N. Keep in mind that to drop the remainder in each [] and only get the whole number. Don't rounding off numbers. Then divide the N by 7. Remainder give the answer, day of the week.

0 - Saturday
1 - Sunday
2 - Monday
3 - Tuesday and so on.

Try it and see.
• 05-05-2008, 06:41 AM
Eranga
Ah, made a mistake in my explanation. Here is an example for today(5/5/2008)

Code:

```N = 5 + 2(5) + [3(6)/5] + 2008 + [2008/4] - [2008/100] + [2008/400] + 2 N = 5 + 10 + 3 + 2008 + 502 - 20 + 5 + 2 N = 2515```
After dividing by 7, remainder is 2, means that today is Monday. Yep, it's correct.

d is not the number of days of the month. Days spending up to date which we want to processing.

Did you get it?
• 05-05-2008, 07:11 AM
veena
im trying to write in servlet and get in jsp
• 05-05-2008, 07:13 AM
Zosden
The way Eranga explain it is correct. except you have to account for leap years. which you do with an array I forget the exact table.
• 05-05-2008, 07:19 AM
Eranga
Quote:

Originally Posted by veena
i tried for 1/1/2008
but im getting N=1 which is monday where i shud get tuesday as first day

You made a mistake there again.

Code:

```N = 1 + 2(1) + [3(2)/5] + 2008 + [2008/4] - [2008/100] + [2008/400] + 2 N = 1 + 2 + 1 + 2008 + 502 - 20 + 5 + 2 N = 2502```
Divide N by 7, remainder is 3. Means it's Tuesday. Check it again. :)
• 05-05-2008, 07:24 AM
veena
hey Eranga

• 05-05-2008, 07:33 AM
Eranga
Is it.

Code:

```N = 1 + 2(1) + [3(2)/5] + 2008 + [2008/4] - [2008/100] + [2008/400] + 2 N = 1 + 2 + 1 + 2008 + 502 - 20 + 5 + 2 N = 5 + 2008 + 502 - 20 + 7 N = 2510 - 20 + 12 N = 2502```
Where I'm going wrong pal. Can you pointed it for me?
• 05-05-2008, 07:42 AM
veena
let me try again
• 05-05-2008, 07:59 AM
Zosden
Try this on for size.
• 05-05-2008, 08:00 AM
Eranga
Go it. I've miss a very important rule there. Really sorry about. Still I remembering this and let you know, because I do those things few years back when I'm in the university for maths.

You have to use numbers 13 and 14 for the months of January and February, with the previous year. In our discussion,

1/1/2008 should be 1/13/2007.

Lets try it.

Code:

```N = 1 + 2(13) + [3(14)/5] + 2007 + [2007/4] - [2007/100] + [2007/400] + 2 N = 1 + 26 + 8 + 2007 + 501 - 20 + 5 + 2 N = 2530```
You get the correct answer there.

Lets do another example, for 20/2/2008. So the date should be 20/14/2007

Code:

```N = 20 + 2(14) + [3(15)/5] + 2007 + [2007/4] - [2007/100] + [2007/400] + 2 N = 20 + 28 + 9 + 2007 + 501 - 20 + 5 + 2 N = 2552```
Yep, I'm correct. Give the correct answer here too.

Keep in mind that, rule only valid for January and February.
• 05-05-2008, 08:15 AM
veena
yep i got it and did in servlet
when i was searching i got the same formula

any ways thnks very much
its a nice formula though
• 05-05-2008, 08:15 AM
Zosden
I think you can just use the Gregorian calendar I think also.
• 05-05-2008, 09:48 AM
Eranga
No matter what calender you used, my formula is working. We have used in few projects that formula, when I'm in the University.
• 05-06-2008, 06:03 AM
Eranga