Кодировка не может быть такой, как вы думаете. Релиз и номера упакованы в один 32-битный DWORD
. Это означает, что для всех секунд дня доступно только 16 бит. В дне 86400 секунд, что больше 2 16 .
Довольно странно, что реализация Delphi оборачивается, когда достигает 2 16 секунд, ~ 18,2 часа. Итак, в данный момент это 22:50 в моем часовом поясе (UTC), но автоматически сгенерированный номер выпуска - 16753, или около 4,6 часа. Добавьте обратно пропущенные 18,2 часа из бинго, это 22:50.
Похоже, что люди Visual Studio поняли это правильно, потому что они взяли количество секунд после 00:00 и поделили на 2. Следовательно, также может показаться, что автоматически сгенерированные номера релизов Delphi не будут монотонно увеличиваться со временем, не будет уникальным и т. д.
Мне кажется, что это ошибка, которую я отправил как QC # 102343 . Обратите внимание, что ошибка была введена в обновлении XE2 3. В предыдущих версиях она отсутствовала. Также обратите внимание, что обработка номера выпуска изменилась с обновления 2 на обновление 3.