Пожалуйста , просьба меня не наказывать
Помощь мне № 1
Хочется чем проще , тем лучше , таймер обратного отчета до Нового Года , при этом Год формируется автоматически , то есть:
1) если запустить скрипт в 2017 Году - будет отсчет до 2018 Года
2) если запустить скрипт в 2018 Году - будет отсчет до 2019 Года
До Нового , 2018 Года , осталось :
Дней : XX ; Часов : XX ; Минут : XX ; Секунд : XX
Числа ХХ имеют двузначный формат в виде strtime
%d Двухзначное представление дня месяца (с ведущими нулями) , От 01 до 31
%H Двухзначный номер часа в 24-часовом формате , От 00 до 23
%M Двухзначный номер минуты , От 00 до 59
%S Двухзначный номер секунды , От 00 до 59
Ниже есть код , но , предполагаю , таймер отбратного отсчета реализован много строк , хочется чем проще , тем лучше , тем более
Код ниже , возможно несовпадение секунд обратного отсчета , хочется как время в питон идет вперед - модуль localtime(time) , с тем же шагом время идет назад - для обратного отсчета
text = "" nexttime = time() ct = localtime(nexttime) new_year = str(ct.tm_year + 1) new_year_time = mktime(strptime(new_year, "%Y")) title_text = _("До Нового , %s Year , осталось :") % new_year remaining = int(math.floor(new_year_time - nexttime)) if remaining > 0: text += _("%s\n") % (title_text) text += str(datetime.timedelta(seconds=remaining))
Помощь мне № 2
Да , очень хочется один раз и на всю жизнь , динамического изменения окончаний , мол
День : 01
Дня : 02
Дней : 29
Час : 01
Часа : 02
Часов : 13
Минута : 01
Минуты : 02
Минут : 07
Секунда : 01
Секунды : 02
Секунд : 28
Примерный код ниже
days = "день" if ((day>1 && day<5) || (day>21 && day<25) || (day>31 && day<35) || (day>41 && day<45) || (day>51 && day<55)) {days = "дня"} if ((day>4 && day<21) || (day>24 && day<31) || (day>34 && day<41) || (day>44 && day<51) || day==0) {days = "дней"} hours = "час" if ((hour>1 && hour<5) || hour>21) {hours = "часа"} if ((hour>4 && hour<21) || hour==0) {hours = "часов"} mins = "минута" if ((min>1 && min<5) || (min>21 && min<25) || (min>31 && min<35) || (min>41 && min<45) || (min>51 && min<55)) {mins = "минуты"} if ((min>4 && min<21) || (min>24 && min<31) || (min>34 && min<41) || (min>44 && min<51) || min>54 || min==0) {mins = "минут"} secs = "сек." /*if ((sec>1 && sec<5) || (sec>21 && sec<25) || (sec>31 && sec<35) || (sec>41 && sec<45) || (sec>51 && sec<55)) {secs = "секунды"} if ((sec>4 && sec<21) || (sec>24 && sec<31) || (sec>34 && sec<41) || (sec>44 && sec<51) || sec>54 || sec==0) {secs = "секунд"} */
Рад буду как Помощь мне № 1 и/или Помощь мне № 2
Спасибо.