Today (December 21) is the winter solstice day signifying the longest night and shortest day in the Northern Hemisphere. It is today that the sun commences its northward journey. In Sanskrit this is called Uttarayana. However, for Hindus the festival coinciding with Uttarayana, that is Makara Sankranti is not on this day but will be January 14th or 15th.
The reason is that Indian calendars follow the so-called Sidereal year rather than the tropical year. The former is longer by about twenty minutes. The reason for this difference is that the tropical year takes into consideration the rotation of the axis of the earth with a periodicity of about 26000 years. This rotation is known as “precession of the equinox”. The effect of precession is disregarded in the sidereal year.
The difference of about twenty minutes per year between the tropical year and the sidereal year adds to one day in 70.5 years. The implication is that our Makara Sankranti advances by a day every seventy years. In fact our Uttarayana coincided with winter solstice in the year 289 C.E. In a similar way, Tamil New Year Day is celebrated on April 14th whereas it should coincide with equinox which falls on March 21. In tropical year the months and seasons are in phase always.
The Government of India set up a committee to reform our calendars in 1955 with the renowned physicist Meghnad Saha as its chairman. It surveyed the existing calendars and the methods of corrections adopted in each, and concluded that “the Hindu calendar... is a most bewildering production of the human mind and incorporates all the superstitions and half-truths of medieval times.... In spite of these errors, very few have the courage to talk of reform... the beginning of the year is now wrong by nearly twenty-three days, the result of accumulated error of nearly 1,400 years.”
There are many articles available in the net on this topic. Articles by Professor Biman Nath and Professor K D Abhyankar in the following two links are well written and are recommended.