Как вычесть две даты и получить день в Python 2.7

У меня две даты в этом формате. мне нужны дни с обеих дат.

start_date = 2018-12-01
end_date = 2018-12-03

st_dates = date(start_date)
en_dates = date(end_date)
ss = st_dates - en_dates
print(ss.days)

у меня ошибка

global name 'date' is not defined

это проблема импорта?

Nabin 05.12.2018 10:33

Возможный дубликат Вычитание дат с помощью Python

Sarper Kumcu 05.12.2018 10:34

@ Набин, я уже импортирую дату и время

Zeshan 05.12.2018 10:34

@NerdicSapo я проверяю много решений, но не работаю.

Zeshan 05.12.2018 10:34

Пожалуйста, предоставьте минимальный воспроизводимый пример. Ваш код ошибки в первой строке.

jpp 05.12.2018 10:47

@jpp В первой строке нет ошибки, только целочисленное вычитание.

meagar 05.12.2018 16:35

@meagar, в Python 2.7, достаточно честно :). Конечно, это ошибки в Python 3.

jpp 05.12.2018 16:36
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
4
7
103
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вам необходимо импортировать модуль datetime. Для свиданий можно использовать datetime.datetime.

from datetime import datetime
start_date = datetime(2018, 12, 1)
end_date = datetime(2018, 12, 3)
ss = start_date - end_date 
print(ss.days)

или

from datetime import datetime
st_dates = datetime.strptime('2018-12-01', '%Y-%m-%d')
en_dates = datetime.strptime('2018-12-03', '%Y-%m-%d')
ss = st_dates - en_dates
print(ss.days)

у меня ошибка. объект 'модуль' не может быть вызван для использования вашего метода

Zeshan 05.12.2018 10:38
Ответ принят как подходящий

Предполагая, что у вас есть (обратите внимание, что это строки):

start_date = '2018-12-01'
end_date = '2018-12-03'

Затем вам нужно импортировать модуль datetime и разбирать строки как объекты datetime:

import datetime
st_dates = datetime.datetime.strptime(start_date, '%Y-%m-%d')
en_dates = datetime.datetime.strptime(end_date, '%Y-%m-%d')

Затем сделайте разницу, как вы это сделали:

ss = st_dates - en_dates
print(ss.days)

я получил ошибку аргумент int () должен быть строкой или числом, а не datetime.timedelta

Zeshan 05.12.2018 10:43

@Zeshan Значит, вы используете код, которого я еще не видел. Не могли бы вы отредактировать свой вопрос?

TerryA 05.12.2018 10:48

Другие вопросы по теме