Question: `Date.new` results in `# -4712-01-01`.

Just as per the title, what logic am i missing, why start from -4712?

Answer: 
<https://en.wikipedia.org/wiki/Julian_day>

*The Julian Period is a chronological interval of 7980 years beginning 4713 BC. It has been used by historians since its introduction in 1583 to convert between different calendars. 2015 is year 6728 of the current Julian Period. The next Julian Period begins in the year 3268 AD.*
The internal representation of a Date or DateTime object is an astronomical Julian date: a fractional number of days since a "time zero" in 4712 BCE.

More information are also available in the [Ruby documentation for Date](http://ruby-doc.org/stdlib-1.9.3/libdoc/date/rdoc/Date.html#class-Date-label-julian+day+number).

> 
> The Julian day number is in elapsed days since noon (Greenwich mean time) on January 1, 4713 BCE (in the Julian calendar).
> 
> 
> In this document, the astronomical Julian day number is same as the original Julian day number. And the chronological Julian day number is a variation of the Julian day number. Its days begin at midnight on local time.
> 
> 
> 

From [Wikipedia](https://en.wikipedia.org/wiki/Julian_day)

> 
> The Julian day number can be calculated using the following formulas (integer division is used exclusively, that is, the remainder of all divisions are dropped):
> 
> 
> *The months (M) January to December are 1 to 12. For the year (Y) astronomical year numbering is used, thus 1 BC is 0, 2 BC is −1, and 4713 BC is −4712. D is the day of the month. JDN is the Julian Day Number, which pertains to the noon occurring in the corresponding calendar date.*
> 
> 
>