Я полагаю, что то, что вы описываете, будет заменой datetime
модуля, который реализует datetime.datetime
атрибуты (год, месяц и т. Д.) Как значения с измерением неопределенности (а не просто значения).
Пакеты Python существуют, чтобы помочь с неопределенными числами (например, пакет неопределенностей ), и, возможно, было бы не так уж сложно сделать ответвление datetime
, использующее неопределенность для каждого атрибута. Я тоже хотел бы увидеть его и, возможно, даже использовать его. Несомненно, можно привести аргумент в пользу включения udatetime
в пакет вышеупомянутых неопределенностей.
Ваши примеры будут примерно такими:
bob_bday = udatetime(2000, (6,6)) # 2000-06 +/- 6mo
>>> 2000-??-?? T??:??:??
bil_bday = udatetime((1970, 50), 3, 7) # assume bill is ~40 +/- 40
>>> [1970+/-40]-03-07 T??:??:??
«Значения сигнала» имеют много проблем, но кроме того, вы можете представлять вещи с неопределенностью, что значения сигнала не могут:
# ali was born in spring
ali_bday = udatetime((), (4.5, 1.5))
>>> [1970+/-40]-[4.5+/-1.5]-?? T??:??:??
Другое соображение состоит в том, что, если быть более точным, неопределенности здесь должны быть типичными timedelta
. Я оставляю читателю в качестве упражнения выяснение краткого и полного конструктора для udatetime
использования timedelta
неопределенностей.
В конечном счете, я бы сказал, что то, что вы описываете, «легко» моделируется неопределенностями, но реализация a udatetime
практически довольно сложна. Большинство выберет «легкий» маршрут, разбив дату и время на компоненты и самостоятельно отслеживая неопределенность в них, но если вы чувствуете себя амбициозно, uncertainties
пакет (или другой) может заинтересовать запрос на извлечение udatetime
.