Advertisement
Guest User

Untitled

a guest
Jun 21st, 2018
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.56 KB | None | 0 0
  1. # трассировка времени между датами
  2. def dt_diff(dt1, dt2):
  3.     if dt1>dt2:
  4.         td = dt1 - dt2
  5.         #~ dd = dt1.day - dt2.day
  6.         mdt = dt2
  7.         mdt_const = dt2
  8.         edt = dt1
  9.         future = True
  10.     else:
  11.         td = dt2 - dt1
  12.         #~ dd = dt2.day - dt1.day
  13.         mdt = dt1
  14.         mdt_const = dt1
  15.         edt = dt2
  16.         future = False
  17.     total_days = td.days
  18.     years,months,days,hours,minutes,seconds=0,0,0,0,0,0
  19.     for d in range(total_days):
  20.         old_dt = mdt
  21.         mdt = mdt + timedelta(days=1)
  22.         #~ if mdt.year!=old_dt.year:
  23.             #~ years += 1
  24.             #~ months = 0
  25.         #~ if mdt.month!=old_dt.month:
  26.             #~ months += 1
  27.             #~ days = 0
  28.         if mdt.day!=old_dt.day:
  29.             days += 1
  30.         wd,md = calendar.monthrange(mdt.year, mdt.month)
  31.         if (mdt_const.day==mdt.day):
  32.             months += 1
  33.             days = 0
  34.         elif (mdt_const.day>md):
  35.             if days>md-1:
  36.                 months += 1
  37.                 days = 0
  38.         if months>11:
  39.             years += 1
  40.             months = 0
  41.             #~ if days>365:
  42.                 #~ days=0
  43.     time_td = edt - mdt
  44.     hms = td_format_time(time_td)
  45.     res = []
  46.     if years>0:
  47.         res.append(str(years) + mc(" год"," года"," лет",years))
  48.     if months>0:
  49.         res.append(str(months) + mc(" месяц"," месяца"," месяцев",months))
  50.     if days>0:
  51.         res.append(str(days) + mc(" день"," дня"," дней",days))
  52.     if hms[0]>0:
  53.         res.append(str(hms[0]) + mc(" час"," часа"," часов",hms[0]))
  54.     if hms[1]>0:
  55.         res.append(str(hms[1]) + mc(" минута"," минуты"," минут",hms[1]))
  56.     if hms[2]>0:
  57.         res.append(str(hms[2]) + mc(" секунда"," секунды"," секунд",hms[2]))
  58.     return " ".join(res),future
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement