Провел детективное расследование и подтвердил предположение. Всё дело в том, что код отвечающий за эти даты написан на одном языков программирования (в данном случае в Delphi, но не так важно). Так вот, если завести в этом языке переменную типа Дата и присвоить ей неопределенное или заведомо несуществующую дату, то можно добиться интересного результата.
В переменную неправильные значения записываются нормально и хранятся там в виде набора байт. А вот если перевести в строку, то функция:
- Код: Выделить всё
DateToStr
переводит несуществующие даты в сроку 30.12.1899.
За этим можно закончить. Но если совсем до конца довести: открыл исходники Delphi и посмотрел, там написано, что переменная типа Дата считает дни от 12/30/1899., т.е. 30 декабря 1899 - день номер ноль и дальше прибавляется по 1 до хранимой даты.
Прошу не начинать спор, плох или хорош Delphi. Хороший это или плохой язык и каковы программисты на нем.
Я просто написал результат детективного расследования о том откуда взялась дата 30.12.1899