from datetime import date, datetime from time import time t = time() def get_variant(amount, variants): cases = [2, 0, 1, 1, 1, 2] return variants[2 if (amount % 100 > 4 and amount % 100 < 20) else cases[min(amount % 10, 5)]] td = datetime(date.today().year + 1, 1, 1) - datetime.fromtimestamp(t) days, hours, minutes, seconds = td.days, td.seconds // 3600, td.seconds // 60 % 60, td.seconds % 60 text = [ '{:0>2} д{}' . format(days, get_variant(days, ('ень', 'ня', 'ней'))), '{:0>2} час{}' . format(hours, get_variant(hours, ('', 'а', 'ов'))), '{:0>2} минут{}' . format(minutes, get_variant(minutes, ('а', 'ы', ''))), '{:0>2} секунд{}' . format(seconds, get_variant(seconds, ('а', 'ы', ''))) ] print ' ; '.join(text) |