Date BC problem...

dim d as new date
d.year = 1
d.month = 1
d.day = 1
d.day = d.day - 1
msgbox d.SQLDate

I expected Dec. 31 in the year 0 (astronomically, calendar wise 1 BC), but Date gives Dec. 31 year 1…
With d.year = 0, it gives Dec. 31 in the year 2!

Any reason for this behavior?

If you check the documentation you will find that the date type begins counting from 12 AM 01.01.1904. Anything before that is undefined.

You can add yourself to case 32293 which I filled about this issue last month.