Python - Writer - Macro - datetime_now

Автор EvgeX, 24 декабря 2011, 16:47

0 Пользователи и 1 гость просматривают эту тему.

EvgeX

# С НАСТУПАЮЩИМ НОВЫМ ГОДОМ!
# Работающий макрос и вопрос в коде.
"""""""""""""""
PythonWriter RU
datetime_now.py
19.12.11  EvgeX
"""""""""""""""

def datetime_now():
   doc = XSCRIPTCONTEXT.getDocument()
   text = doc.Text
# подключаемые библиотеки
  import time, datetime
# текущее время и дата
   now = datetime.datetime.now()
   today = datetime.date.today()
   text.Start.String = (
   "ТЕКУЩЕЕ  ВРЕМЯ  И  ДАТА" +
   "\nСегодня - " + today.strftime("%d.%m.%Y") +
   "\nНомер дня года - " + today.strftime("%j") +
   "\nНомер недели года - " + today.strftime("%W") +
   "\nДень недели числом - " + today.strftime("%w") +
   "\nДень недели по-английски - " + today.strftime("%A") +
   "\nДень недели по-русски - ?" +
   "\nВремя - " + now.strftime("%X") +
   "\nПризнак 'до/после полудня' - " + now.strftime("%p")
   )

Рыбка Рио

#1
Думаю, нужно добавить locale.
   import locale
   locale.setlocale(locale.LC_ALL, 'ru_RU.UTF-8')
   Day_ru = today.strftime("%A")
   locale.setlocale(locale.LC_ALL, 'en_US.UTF-8')
   Day_en = today.strftime("%A")

Вот только на разных системах названия могут отличаться. Например, на Windows это 'Russian_Russia.1251', а на Linux может быть 'ru_RU.UTF-8'.
ubuntu 12.04 + LibO3.6.0

EvgeX

#2
# ОГРОМНОЕ СПАСИБО КЛИО!
# ЕЩЁ РАЗ ВСЕХ С НАСТУПАЮЩИМ!
# Работающий макрос для Windows.
"""""""""""""""
PythonWriter RU
datetime_now.py
25.12.11  EvgeX
"""""""""""""""

def datetime_now():
   doc = XSCRIPTCONTEXT.getDocument()
   text = doc.Text
# подключаемые библиотеки
   import time, datetime, locale
# русский язык
   locale.setlocale(locale.LC_ALL, 'Russian_Russia.1251')
# текущее время и дата
   now = datetime.datetime.now()
   today = datetime.date.today()
   text.Start.String = (
   "ТЕКУЩЕЕ  ВРЕМЯ  И  ДАТА" +
   "\nСегодня - " + today.strftime("%d.%m.%Y") +
   "\nНомер дня года - " + today.strftime("%j") +
   "\nНомер недели года - " + today.strftime("%W") +
   "\nДень недели числом - " + today.strftime("%w") +
   "\nДень недели по-русски - " + today.strftime("%A") +
   "\nДень недели сокращенно - " + today.strftime("%a") +
   "\nВремя - " + now.strftime("%X")
   )

EvgeX

# И ЕЩЁ РАЗ ВСЕХ С НАСТУПАЮЩИМ!!!
"""""""""""""""
PythonWriter-RU
datetime_now.py
26.12.11  EvgeX
"""""""""""""""

def datetime_now():
    doc = XSCRIPTCONTEXT.getDocument()
    text = doc.Text
# подключаемые библиотеки
    import locale, time, datetime
# русский язык
    locale.setlocale(locale.LC_ALL, 'Russian_Russia.1251') #Windows
    #locale.setlocale(locale.LC_ALL, 'ru_RU.UTF-8') #Linux
# текущее время и дата

    now = datetime.datetime.now()
    sft = now.strftime
    text.Start.String = (
    "ТЕКУЩЕЕ  ВРЕМЯ  И  ДАТА\n" +
    sft("Сегодня - %d.%m.%Y\n") +
    sft("Номер дня года - %j\n") +
    sft("Номер недели года - %W\n") +
    sft("День недели по-русски - %A\n") +
    sft("День недели сокращенно - %a\n") +
    sft("Время - %H:%M\n")
    )

ГДЕ РАЗМЕСТИТЬ И КАК ЗАПУСТИТЬ ВАШИ МАКРОСЫ.py
http://www.macro-doc.narod.ru

Рыбка Рио

#4
Цитата: EvgeX от 26 декабря 2011, 12:49# И ЕЩЁ РАЗ ВСЕХ С НАСТУПАЮЩИМ!!!
И вас!

Кстати, у вас наверное английский интерфейс системы. На русском интерфейсе локаль Питона и так такая. Т.е. на русском интерфейсе системы эти строчки - необязательны. Т.е., локаль Питона, по умолчанию, соответствует системной локали. Все эти названия (Russian_Russia.1251 и прочие), берутся из переменной среды LANG (http://docs.python.org/library/locale.html).
ubuntu 12.04 + LibO3.6.0