Добавить в корзинуПозвонить
Найти в Дзене

Високосный год дарит сюрпризы

Если зарегистрировать домен 29 февраля, то следующие 3 года его срок регистрации будет до 28 февраля! Кажется, что украли 1 день? Но нет, так считают роботы и они просто прибавляют 365 дней (хотя программисты знают о високосном годе). Но во многих системах есть функция добавления года к текущей дате (+1 year), и они выдают более правильный результат - 1 марта 2021 года. Почему так сделано - хороший вопрос. Возможно это отголоски нашей системы регистрации, которая возникла еще в прошлом веке. А может просто лень. Вот как-то так. Есть еще одно предположение почему так делают - чтобы не перескакивать месяц. Например, вы привыкли продлевать любимый домен в конце февраля, а тут вдруг было бы написано 1 марта. Биллинги В биллинговых системах есть интересный подход при списании абонентской платы за месяц - она списывается в день подключения (биллинговый день). Если этот день отсутствует в текущем месяце (сюрприз!), то он смещается на последний день месяца. А в следующем месяце опять пытает

Если зарегистрировать домен 29 февраля, то следующие 3 года его срок регистрации будет до 28 февраля!

Кажется, что украли 1 день? Но нет, так считают роботы и они просто прибавляют 365 дней (хотя программисты знают о високосном годе).

Но во многих системах есть функция добавления года к текущей дате (+1 year), и они выдают более правильный результат - 1 марта 2021 года.

Почему так сделано - хороший вопрос. Возможно это отголоски нашей системы регистрации, которая возникла еще в прошлом веке. А может просто лень. Вот как-то так.

Есть еще одно предположение почему так делают - чтобы не перескакивать месяц. Например, вы привыкли продлевать любимый домен в конце февраля, а тут вдруг было бы написано 1 марта.

Биллинги

В биллинговых системах есть интересный подход при списании абонентской платы за месяц - она списывается в день подключения (биллинговый день). Если этот день отсутствует в текущем месяце (сюрприз!), то он смещается на последний день месяца. А в следующем месяце опять пытается списаться в нужный день:

31 января подключили услугу. Следующее списание будет 28 (или 29) февраля. В марте опять 31 числа, а в апреле 30.

С точки зрения программирования - это сложный путь, но более правильный по условиям с пользователем (услуга оказывается в течение месяца).

Но есть и путь проще - заранее устанавливать следующий день списания, и если его нет в этом месяце - сдвигать биллинговый день на последний.

В итоге за год ваш 31-й день превратится в 28-й и далее каждый месяц списание будет в этот день.

Это проще со стороны программирования, но хуже для пользователя, если он конечно помнит этот день.

А как поступили бы вы?