#python #date #rounding
#python #Дата #округление
Вопрос:
У меня есть два date
значения в Python, из которых я пытаюсь получить округленную длительность.
Например: с 01-01-2000 по 12-31-2099 — это действительно «100 лет», а не «99 лет».
У меня есть пример на Java, но я не уверен, как перенести это на Python speak:
round(endDateEpochInMilliseconds -startDateEpochInMilliseconds /(365.25 * 24 * 3600 * 1000))
Я уверен, что нечто подобное выполнимо в Python.
Комментарии:
1. У меня совсем нет опыта работы с Python, но мне любопытно. Чего вы ожидаете, если у вас start = 04-05-2000, end = 10-11-2010? Какой результат? Голосую за интересный вопрос.
Ответ №1:
import datetime
date1 = datetime.date(2000,1,1)
date2 = datetime.date(2099, 12, 31)
delta = date2-date1
print round(delta.days/365.25,0)
Ответ №2:
Вы, безусловно, должны заключить endDateEpochInMilliseconds -startDateEpochInMilliseconds
в квадратные скобки!
round( (endDateEpochInMilliseconds -startDateEpochInMilliseconds) /(365.25 * 24 * 3600 * 1000))
Комментарии:
1. Итак, вы хотите сказать, что этот фрагмент также может выполняться как код на Python, но с дополнительными скобками? В python у меня нет доступных переменных
endDateEpochInMilliseconds
иstartDateEpochInMilliseconds
, поэтому мне нужно будет преобразовать мои объекты date в миллисекунды эпохи как часть 2 для решения этой проблемы. —Правильно ли я думаю об этом?2. Flowpoke: нет, я ничего не говорю о phyon, но общие математические правила (/ перед ) работают для (большинства) языков программирования одинаково. — Ваше утверждение разделило бы только startDateEpochInMilliseconds на (365.25 * 24 * 3600 * 1000 ) а затем вычтите это значение из endDateEpochInMilliseconds. И это явно неправильно.