Sunday, February 20, 2011

जीवन में एक सितारा था...


This poem is by Dr. Harivansh Rai Bachchan, from Madhushala.

I had heard this first time from Amitabh Bachchan when he was chief guest for a Marathi award function. Since then I was trying to get it somewhere. Finally got it from one of my friends!

Here is the poem:

जीवन में एक सितारा था
माना वह बेहद प्यारा था
वह डूब गया तो डूब गया
अंबर के आंगन को देखो
कितने इसके तारे टूटे
कितने इसके प्यारे छूटे
जो छूट गए फ़िर कहाँ मिले
पर बोलो टूटे तारों पर
कब अंबर शोक मनाता है
जो बीत गई सो बात गई
जीवन में वह था एक कुसुम
थे उस पर नित्य निछावर तुम
वह सूख गया तो सूख गया
मधुबन की छाती को देखो
सूखी कितनी इसकी कलियाँ
मुरझाईं कितनी वल्लरियाँ
जो मुरझाईं फ़िर कहाँ खिलीं
पर बोलो सूखे फूलों पर
कब मधुबन शोर मचाता है
जो बीत गई सो बात गई
जीवन में मधु का प्याला था
तुमने तन मन दे डाला था
वह टूट गया तो टूट गया
मदिरालय का आंगन देखो
कितने प्याले हिल जाते हैं
गिर मिट्टी में मिल जाते हैं
जो गिरते हैं कब उठते हैं
पर बोलो टूटे प्यालों पर
कब मदिरालय पछताता है
जो बीत गई सो बात गई
मृदु मिट्टी के बने हुए हैं
मधु घट फूटा ही करते हैं
लघु जीवन ले कर आए हैं
प्याले टूटा ही करते हैं
फ़िर भी मदिरालय के अन्दर
मधु के घट हैं,मधु प्याले हैं
जो मादकता के मारे हैं
वे मधु लूटा ही करते हैं
वह कच्चा पीने वाला है
जिसकी ममता घट प्यालों पर
जो सच्चे मधु से जला हुआ
कब रोता है चिल्लाता है
जो बीत गई सो बात गई
 

Sunday, February 13, 2011

Understanding calendar...





Few years ago I was learning a programming language and was given an assignment to display calendar and tell day of date .

Instead of using library function I wrote the logic to come up with the day of that date. I had worked it out long back when I was in school - when I had read about Shakuntala Devi. I was fascinated by how to do mathematical calculation in head so quickly, or tell day of any past or future date. For mathematical calculations I read some books on Vedic Maths and learnt few things. As for date, I worked it out purely on my own. Don't know if that is how those people do it or some other way. But this method works fine. And its very easy to do, once you understand how calendar works.

Let me explain how.

First few basics about Calendar:
1. There are 365 days in a normal year and 366 in a Leap year.
2. If the year is divisible by 4 (but not by 100) then the year is a Leap year e.g. 1988, 1876, 2024 etc.
3. If the year is divisible by 100 and also by 400 then the year is a Leap year. e.g. 2000, 1600, 2400.
4. If the year is divisible by 100 but not by 400, then the year is NOT a Leap year. e.g. 1800, 1900, 1700, 2100 etc.


Now with these basics we can go ahead to discuss the logic:

Let's understand the concept of 'odd day'. 
The weekdays are Sunday through Saturday. And then the cycle repeats continuously. So if there are exactly 4 weeks then thee is no 'odd day' i.e. extra day. In a 30-day month there are 4 complete weeks and 2 'odd days' (i.e. extra days). In a 31-day month, there are In a leap month (February of a Leap year) there is one odd day.

So lets first see how many odd days are there in each month. (All you have to do is take modulus of 7 for each month...)

January - 3
February - 0 
February in a Leap year - 1
March - 3
April - 2
May - 3
June - 2
July - 3
August - 3 
September - 2
October - 3
November - 2 
December - 3

In a normal year there are 365 days i.e. 52 weeks and 1 odd day. In case of a Leap year there are 2 odd days.

So now we are good to find day of any date. But before that, to make life easy we need a a reference day (it's not mandatory but beneficial).

1st January 1900 was Monday
1st January 2000 was Saturday

Note: For any day in 20th and 21st century these 2 reference days respectively are enough)

------------------------------------------------------------------

Lets work out some examples:

Example 1. 15th Aug 1947 (India's Independence Day) 

Reference Date: 1st January 1900 was Monday i.e. Day ZERO

Step 1: 46 completed years since 1900. i.e. 46 odd days (1 odd day per year, not counting leap years). This is further equivalent to 7 weeks and 4 odd days
Step 2: There were 11 Leap years between 1900 and 1946 (i.e. 1946-1900 MOD 7). So 11 more odd days. i.e 1 week and 4 odd days
Step 3: Odd days for Year 1947 (till July 1947) are 16 (3+0+3+2+3+2+3) i.e. 2 weeks and 2 odd days
Step 4: As on Aug 15, there was 1 odd day

Adding odd day for Steps 1 through 4 we get 4+4+2+1 = 11 odd days i.e. further equal to 4 odd days.

Since reference day 1st January 1900 was Monday, counting 4 days from that day we get Friday.

So 15th August 1947 was Friday!

------------------------------------------------------------------------------------------------

Example 2. 11th September 2001 (World Trade Center Attack)

Reference: 1st January 2000 was Saturday

Step 1: 0 completed year since 2000. So 0 odd days
Step 2: 1 Leap year since 2000. So 1 odd days
Step 3: Odd days till August 2001 (3+0+3+2+3+2+3+3) are 19 i.e. 2 weeks and 5 odd days
Step 4: As on September 11, there were 4 odd days

Adding odd day for Steps 1 through 4 we get 0+1+5+4 = 10 i.e. 3 odd days.

Since reference day 1st January 2000 was Saturday, counting 3 days from that day we get Tuesday.

So 11th September 2001 was Tuesday!

------------------------------------------------------------------------------------------------

Example 3. 26th November 2008 (Mumbai Attack)

Reference: 1st January 2000 was Saturday

Step 1: 7 completed years since 2000. i.e. 7 days. So 0 odd days
Step 2: 2 Leap years since 2000. So 2 odd days
Step 3: Odd days till October 2001 (3+1+3+2+3+2+3+3+2+3) are 25 i.e. 3 weeks and 4 odd days
Step 4: As on November 26, there were 5 odd days

Adding odd day for Steps 1 through 4 we get 0+2+4+5 = 11 i.e. 4 odd days.

Since reference day 1st January 2000 was Saturday, counting 4 days from that day we get Wednesday.

So 11th September 2001 was Wednesday!

------------------------------------------------------------------------------------------------

Example 4: 25th June 1983 (India's World Cup Cricket Win)

Reference Date: 1st January 1900 was Monday i.e. Day ZERO

Step 1: 82 completed years since 1900. i.e. 82 odd days --> 5 odd days
Step 2: There were 20 Leap years between 1900 and 1982. So 20 more odd days. i.e 2 week and 6 odd days
Step 3: Odd days for Year 1983 (till May 1983) are 11 (3+0+3+2+3) i.e. 4 odd days
Step 4: As on June 25, there were 4 odd days

Adding odd day for Steps 1 through 4 we get 5+6+4+4 = 19 odd days i.e. further equal to 5 odd days.

Since reference day 1st January 1900 was Monday, counting 5 days from that day we get Saturday.

So 15th August 1947 was Saturday!

------------------------------------------------------------------------------------------------

Example 5: Today i.e. 13th February 2010


Reference: 1st January 2000 was Saturday

Step 1: 10 completed years since 2000. i.e. 10 days. So 3 odd days
Step 2: 3 Leap years since 2000. So 3 odd days
Step 3: Odd days till January 2010 are 3 i.e. 3 odd days
Step 4: As on February 13, there were 6 odd days

Adding odd day for Steps 1 through 4 we get 3+3+3+6 = 15 i.e. 1 odd day.

Since reference day 1st January 2000 was Saturday, counting 1 day from that day we get Sunday.

Yes, today is Sunday! :)