Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # трассировка времени между датами
- def dt_diff(dt1, dt2):
- if dt1>dt2:
- td = dt1 - dt2
- #~ dd = dt1.day - dt2.day
- mdt = dt2
- mdt_const = dt2
- edt = dt1
- future = True
- else:
- td = dt2 - dt1
- #~ dd = dt2.day - dt1.day
- mdt = dt1
- mdt_const = dt1
- edt = dt2
- future = False
- total_days = td.days
- years,months,days,hours,minutes,seconds=0,0,0,0,0,0
- for d in range(total_days):
- old_dt = mdt
- mdt = mdt + timedelta(days=1)
- #~ if mdt.year!=old_dt.year:
- #~ years += 1
- #~ months = 0
- #~ if mdt.month!=old_dt.month:
- #~ months += 1
- #~ days = 0
- if mdt.day!=old_dt.day:
- days += 1
- wd,md = calendar.monthrange(mdt.year, mdt.month)
- if (mdt_const.day==mdt.day):
- months += 1
- days = 0
- elif (mdt_const.day>md):
- if days>md-1:
- months += 1
- days = 0
- if months>11:
- years += 1
- months = 0
- #~ if days>365:
- #~ days=0
- time_td = edt - mdt
- hms = td_format_time(time_td)
- res = []
- if years>0:
- res.append(str(years) + mc(" год"," года"," лет",years))
- if months>0:
- res.append(str(months) + mc(" месяц"," месяца"," месяцев",months))
- if days>0:
- res.append(str(days) + mc(" день"," дня"," дней",days))
- if hms[0]>0:
- res.append(str(hms[0]) + mc(" час"," часа"," часов",hms[0]))
- if hms[1]>0:
- res.append(str(hms[1]) + mc(" минута"," минуты"," минут",hms[1]))
- if hms[2]>0:
- res.append(str(hms[2]) + mc(" секунда"," секунды"," секунд",hms[2]))
- return " ".join(res),future
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement