Разница между двумя датами?

Im программирование с PYTHON …

У меня две разные даты … и я хочу знать разницу (между днями) между ними. Формат даты – ГГГГ-ММ-ДД

Чтобы лучше объяснить себя …

У меня есть функция, которая может ADD или SUBSTRACT заданного числа и получить дату … например:

def addonDays(a,x): ret = time.strftime("%Y-%m-%d",time.localtime(time.mktime(time.strptime(a,"%Y-%m-%d"))+x*3600*24+3600)) return ret 

где A – дата, а X – количество дней, которые я хочу добавить ….. и результат – другая дата ….

Мне нужна функция, где я могу дать две даты, и результат будет int с днями разницы ….

Надеюсь, кто-то может помочь! БЛАГОДАРЯ

4 Solutions collect form web for “Разница между двумя датами?”

Используйте - чтобы получить разницу между двумя объектами datetime и принять член days .

 from datetime import datetime def days_between(d1, d2): d1 = datetime.strptime(d1, "%Y-%m-%d") d2 = datetime.strptime(d2, "%Y-%m-%d") return abs((d2 - d1).days) 

Еще одно короткое решение:

 from datetime import date def diff_dates(date1, date2): return abs(date2-date1).days def main(): d1 = date(2013,1,1) d2 = date(2013,9,13) result1 = diff_dates(d2, d1) print '{} days between {} and {}'.format(result1, d1, d2) print ("Happy programmer's day!") main() 

Я пробовал код, отправленный larsmans выше, но есть несколько проблем:

1) Код как есть, выдает ошибку, указанную mauguerra. 2) Если вы измените код на следующее:

 ... d1 = d1.strftime("%Y-%m-%d") d2 = d2.strftime("%Y-%m-%d") return abs((d2 - d1).days) 

Это преобразует ваши объекты datetime в строки, но две вещи

1) Попытка выполнить d2 – d1 завершится неудачно, так как вы не можете использовать оператор минус в строках и 2) Если вы прочитали первую строку вышеприведенного ответа, которую вы указали, вы хотите использовать оператор – на двух объектах datetime, но вы просто превратили их в строки

Я обнаружил, что вам буквально нужно только следующее:

 import datetime end_date = datetime.datetime.utcnow() start_date = end_date - datetime.timedelta(days=8) difference_in_days = abs((end_date - start_date).days) print difference_in_days 

Попробуй это:

 data=pd.read_csv('C:\Users\Desktop\Data Exploration.csv') data.head(5) first=data['1st Gift'] last=data['Last Gift'] maxi=data['Largest Gift'] l_1=np.mean(first)-3*np.std(first) u_1=np.mean(first)+3*np.std(first) m=np.abs(data['1st Gift']-np.mean(data['1st Gift']))>3*np.std(data['1st Gift']) pd.value_counts(m) l=first[m] data.loc[:,'1st Gift'][m==True]=np.mean(data['1st Gift'])+3*np.std(data['1st Gift']) data['1st Gift'].head() m=np.abs(data['Last Gift']-np.mean(data['Last Gift']))>3*np.std(data['Last Gift']) pd.value_counts(m) l=last[m] data.loc[:,'Last Gift'][m==True]=np.mean(data['Last Gift'])+3*np.std(data['Last Gift']) data['Last Gift'].head() 
  • Получить последний день месяца в Python
  • Дочерние даты в Python
  • Строка даты на языке Python
  • Python: добавление 3 недель к любой дате
  • Как установить nltk_contrib в Anaconda
  • как получить тот же день следующего месяца данного дня в python, используя дату и время
  • Преобразование строки в Python для вставки в дату столбца базы данных MySQL
  • Использование Python для подсчета количества рабочих дней в месяц?
  • Python - лучший язык программирования в мире.