LINUX.ORG.RU

питон и время

 ,


0

1

следуя совету, сломал мозг с питоновскими модулями datetime и time - на баше как-то проще с этим было, хоть и костыльно.
вопросы:
1) есть ли модули попроще?
2) как получить название дня недели по его номеру?

★★★

1) Он легкий и многофункциональный, что там не осилить?
2)

weekdays = ['Понедельний', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота', 'Воскресение']
print(weekdays[datetime.now().weekday()])

z00ke
()
Ответ на: комментарий от z00ke

facepalm

Что не так, календарь тоже стандартный модуль.

А так, может и datetime.stftime() окажется удобным, зависит от того, что сделать надо в более широком смысле.

Novel ★★★★
()
Ответ на: комментарий от Novel

Я знаю, просто вроде как ТС просил по datetime и time ему пояснить, все дела. Но да, calendar для таких нужд может быть более удобынм.

z00ke
()
Ответ на: комментарий от z00ke

ТС просил по datetime и time ему пояснить

не обязательно.

batekman ★★★
() автор топика
Последнее исправление: batekman (всего исправлений: 1)
Ответ на: комментарий от hizel
>>> calendar.day_name
<calendar._localized_day object at 0x7ff56d7b9850>
>>> calendar.day_name()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: '_localized_day' object is not callable

как-то не вкурил - что с этим делать?

batekman ★★★
() автор топика
Ответ на: комментарий от Aswed

в том, что питоновские либы сами знают, как дни называются - зачем лишний раз указывать, ещё и с локалью самому разбираться?

batekman ★★★
() автор топика
Ответ на: комментарий от batekman

Почему костыль? Нумерация дней недели никогда не изменится, так в чем же костыльность? Можно дни недели назвать как хочешь, хоть сокращенно например, даже удобно.

z00ke
()
Ответ на: комментарий от batekman
In [6]: list(calendar.day_name)
Out[6]: ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
z00ke
()
Ответ на: комментарий от z00ke

Костыль, потому что применимо только для русского языка.

Если же писать многонациональное приложение (каким должно быть любое СПО), то лучше использовать системные функции, по возможности - в них, как правило, уже встроены переводы, в том числе переводы дней недели и формат отображения, привычный для данного региона.

import datetime
dt = '21/03/2012'
day, month, year = (int(x) for x in dt.split('/'))
ans = datetime.date(year,month,day)
print (ans.strftime("%A"))

import time
print time.strftime("%A", time.strptime('2012-03-21', "%Y-%m-%d"))
Novator ★★★★★
()
Последнее исправление: Novator (всего исправлений: 1)
Ответ на: комментарий от NeXTSTEP

никому.
если автор рассчитывает на популярность своей программы, то в его случае логичнее бы было сделать её многонациональной, чем не сделать, независимо от того, СПО это или нет.

batekman ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.