Страницы: 1
RSS
Как вставить в шаблоне название указанного месяца?, Есть номер месяца (не текущий), Нужно элегантно получить его название.
 
Подскажите, пожалуйста, элегантный способ получить название месяца на английском языке, если известен его номер (1..12). Который потом можно использовать в шаблоне.

Сейчас я делаю это довольно коряво:
1. В переменную %_month получаю номер месяца (не обязательно текущий).
2. А затем делаю длинную цепочку
Цитата

%_mmstr="%IFN:'%_month'='1':'January':''"
%_mmstr="%IFN:'%_month'='2':'February':'%_mmstr'"
%_mmstr="%IFN:'%_month'='3':'March':'%_mmstr'"
%_mmstr="%IFN:'%_month'='4':'April':'%_mmstr'"
%_mmstr="%IFN:'%_month'='5':'May':'%_mmstr'"
%_mmstr="%IFN:'%_month'='6':'June':'%_mmstr'"
%_mmstr="%IFN:'%_month'='7':'July':'%_mmstr'"
%_mmstr="%IFN:'%_month'='8':'August':'%_mmstr'"
%_mmstr="%IFN:'%_month'='9':'September':'%_mmstr'"
%_mmstr="%IFN:'%_month'='10':'October':'%_mmstr'"
%_mmstr="%IFN:'%_month'='11':'November':'%_mmstr'"
%_mmstr="%IFN:'%_month'='12':'December':'%_mmstr'"

Может быть можно как-то переменной присвоить произвольную дату месяца, а потом эту дату выводить в нужном формате (выводя только месяц)?
Изменено: Andrey - 08.02.2013 00:38:39
 
%DATEEN="mmmm" работает, так как просто %DATEEN (Friday, February 8, 2013), тогда как его русский вариант %DATE="mmmm" выдаёт название месяца (Февраль). Как-то нелогично по моему субъективному мнению. Ничего элегантного не надумал даже для текущего месяца.
 
Поробуйте, в шаблоне на папку, к примеру, пишем следующее

Код
%QINCLUDE="month"
[11:36:47] Alexander Petrari: и создаёшь быстрый шаблон с именем "month"
[11:36:52] Alexander Petrari: и содержанием:
[11:37:20] Alexander Petrari: %SetPattRegexp=%-
"%SETPATTREGEXP='(?m-s)Date\:\s*\w{3}.*?\s*\d{1,2}\s*(\w{3})\s*[\d]{1,4}\s*?[\d]{0,2}\:[\d]{0,2}\:[\d]{0,2}\s*?.*'%REGEXPMATCH='%HEADERS'\s*->\s*(.*?)\n"%RegexpMatch="
Jan                  ->   января
Feb                  ->   февраля
Mar                  ->   марта
Apr                  ->   апреля
May                  ->   мая
Jun                  ->   июня
Jul                  ->   июля
Aug                  ->   августа
Sep                  ->   сентября
Oct                  ->   октября
Nov                  ->   ноября
Dec                  ->   декабря
"%-


Будет работать при ответе на письмо
 
Мне этот гранит ("%SETPATTREGEXP + %REGEXPMATCH) пока не по зубам. Перешёл было на cmd-рельсы, но ничего далее
Код
set nomer=%Date:~3,2%
for /f "tokens=*" %%i in ('more +%nomer% "E:\TheBat!\Months.txt"') do (echo %%i&pause&exit)

не придумал. Пшик. NB! Если кто допилит/перепилит батник, то там с нумерацией строк будет нюанс, проще первую строку (нулевая в понятии cmd) списка месяцев оставить пустой и начинать список с месяца January со второй строки.
MonthEN.png (1.69 КБ)
 
Док куча в сети по регулярным выражениям.
 
Serghei Demidiuc,

Очень хорошая идея, я по ее мотивам сделал так:

Если переменной %_month присвоен номер месяца (он у меня в формате 01, 02,... я его вытягиваю из имени аттача)

То строчка
Цитата
%SETPATTREGEXP="%_month->\s*(.*?);"%REGEXPBLINDMATCH="01->January;02->February;03->March;04->April;05->May;06->June;07->July;08->August;09->September;10->October;11->November;12->December;"%_mmstr=%SUBPATT="1"

присваивает переменной %_mmstr нужное строковое значение месяца. Конечно, приходится перечислять все месяцы, но зато короче первоначального варианта.

Спасибо!
 
Рад что помогло!
Страницы: 1