Ñò e>õGc @ sS d Z d d k l Z d d k Z d Z d e d „ Z e d „ Z d d g Z d S( s Date/Time Helpersiÿÿÿÿ( t datetimeNt datei c C s t | t ƒ o t i ƒ | } n t i | i ƒ ƒ } t | t ƒ o t i ƒ | } n t i | i ƒ ƒ } t t t | | ƒ d ƒ ƒ } t t t | | ƒ ƒ ƒ } | d j o} | o\ x- d d d g D] } | | j o d | SqÒ W| d j o d S| d j o d Sd Sq| d j o d Sd SnÑ | d j o d | S| d j o d S| d j o d t | d ƒ S| d j o d S| d j o d t | d ƒ S| d j o d S| d j o d t | d ƒ S| d j o d Sd t | d ƒ Sd S( s’ Return approximate-time-distance string for two datetimes or ints. If times are integers, they are interpreted as seconds. Set ``include_seconds`` to True for more more detailed approximations when distance < 1 min, 29 secs Distances are reported based on the following table: 0 <-> 29 secs => less than a minute 30 secs <-> 1 min, 29 secs => 1 minute 1 min, 30 secs <-> 44 mins, 29 secs => [2..44] minutes 44 mins, 30 secs <-> 89 mins, 29 secs => about 1 hour 89 mins, 30 secs <-> 1 day minus 31 secs => about [2..24] hours 1 day minus 30 secs <-> 2 days minus 31 secs => 1 day 2 days minus 30 secs <-> 30 days minus 31 secs => [2..29] days 30 days minus 30 secs <-> 60 days minus 31 secs => about 1 month 60 days minus 30 secs <-> 1 yr minus 31 secs => [2..12] months 1 yr minus 30 secs <-> 2 yrs minus 31 secs => about 1 year 2 yrs minus 30 secs <-> max time or date => over [2..X] years With ``include_seconds`` set to True and the difference < 1 minute 29 seconds: 0-4 secs => less than 5 seconds 5-9 secs => less than 10 seconds 10-19 secs => less than 20 seconds 20-39 secs => half a minute 40-59 secs => less than a minute 60-89 secs => 1 minute Examples: >>> from datetime import datetime, timedelta >>> from_time = datetime.now() >>> distance_of_time_in_words(from_time, from_time + timedelta(minutes=50)) 'about 1 hour' >>> distance_of_time_in_words(from_time, from_time + timedelta(seconds=15)) 'less than a minute' >>> distance_of_time_in_words(from_time, from_time + timedelta(seconds=15), include_seconds=True) 'less than 20 seconds' Note: ``distance_of_time_in_words`` calculates one year as 365.25 days. i<