[Moscow.pm] Синтаксис работы с датами

Ilya Chesnokov chesnokov.ilya на gmail.com
Чт Июн 30 05:02:12 PDT 2016


30 июня 2016 г., 14:11 пользователь Alexey Shrub <worldmind на mail.ru> написал:
> On Чт, июн 30, 2016 в 2:01 , Ilya Chesnokov <chesnokov.ilya на gmail.com>
> wrote:
>>
>> Это сделано намеренно, чтобы избежать проблем при сравнивании,
>> например, 29 дней и 1 месяца.
>
>
> А где связь между этими проблемами и перегрузкой операторов? Разве если эту
> операцию делать отдельной функцией эти проблемы решаются?

Вы ходили по ссылке? Там все написано.

> В любом случае
> надо помнить об этих проблемах, это особенность типа

Это особенность сравнения интервалов времени. О ней надо помнить при
работе с любыми модулями.

>> perl -MDateTime -E 'my $d1 = DateTime->now; my $dur1 =
>> DateTime::Duration->new(years => 1); $d1+= $dur1; say $d1->ymd'
>
>
> Можно всё, а нужно

Минутку! Сначала вы говорили, что так нельзя ;)

> максимально высокоуровнево, например с Class::Date:
> perl -E 'use Class::Date qw(now); my $d1=now; $d1 += "1Y"; say $d1->ymd'
> 2017/06/30
> кода меньше, читаемость выше

Выбор за вами. Просто DateTime - наиболее популярный модуль
(посмотрите хотя бы на список обратных зависимостей), и читать код с
ним большинству будет наверняка легче, чем с другими поделками. С
другой стороны, он пытается охватить все возможные варианты, и такой
комплексный подход иногда может быть не нужен.

В любом случае рекомендую к просмотру презентацию Дейва Рольски о
проблемах исчисления времени:
https://www.youtube.com/watch?v=nusC1TnwOlg

> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org



-- 
Best regards,
Ilya Chesnokov


Подробная информация о списке рассылки Moscow-pm