[ID CC-CC2019] Отрывной календарь с обратным отсчетом

Uta191

Участник
Топикстартер
Сообщения
30
Реакции
0
Всем добра!
Подскажите, не знаю как лучше реализовать задачу.
Для инсталляции сделать отрывной календарь, с обратным отсчетом дней. Я понимаю, что, генератором чисел я могу раскидать цифры от 380 до 1 по одной на лист, но вот еще внизу каждого листа должен проставляться день, месяц и год:

Получается что-то типа (можно так же превью посмотреть):

"380
понедельник 26 апреля"

Понимаю, что это все можно реализовать скриптами, но вот меня именно смущает сочетание дня недели и числа, везде скрипты под перекидные календари заточены, не могу найти то, что нужно. Буду рада, если дадите наводку на какой-то скрипт. Огромное спасибо.
 

Вложения

  • Screenshot 2019-03-28 at 12.38.04.png
    Screenshot 2019-03-28 at 12.38.04.png
    177.2 КБ · Просм.: 518

К.Т.

Участник
Сообщения
301
Реакции
311
Я бы просто сформировал последовательность в Excel и залил в цепочку фреймов, по одному на странице.
 
  • Спасибо
Реакции: NNN5, langry и Uta191

Валера1966

12 лет на форуме
Сообщения
1 256
Реакции
1 371
Первая мысль: таблицу в Excel сделать.
Первая графа — дата (потом не идёт в работу), формат ячейки "дата", формула "плюс один" от предыдущей.
Вторая — остаток дней (формула "минус 1").
Третья — формула Excel "день недели" от первой графы.
Далее — по формулам Excel "день" и "месяц".

Затем сделайте в последней графе нечто вроде
=СЦЕПИТЬ ()
в скобках расставьте #"Вторая графа"; символ @, например; затем "Третья графа", символ пробела; "Четвёртая" и "Пятая" графы.
=СЦЕПИТЬ ("#";B1;"@";C1;" ";D1;" ";E1)

Получите склеенную ячейку типа
#380@понедельник 26 апреля

Экспортируйте в Ворд последние ячейки, там выделите эту таблицу, "Таблица-Преобразовать в текст".
Получите поток строк типа
#380@понедельник 26 апреля
#379@вторник 27 апреля
#378@среда 28 апреля

Скопируйте в Блокнот и перенесите в Индизайн.
Затем сделайте на мастер-шаблоне фрейм для автоматической разливки.
Сам полученный текст улучшите:
0) всему тексту присвойте стиль, нужный во второй строке (день недели, день, месяц)
1) сделайте СтильАбзаца для числа "Остаток дней"
2) замените @ на "конец параграфа"
3) переприсвойте строкам с символом # — СтильАбзаца "Остаток дней"
4) удалите символ #.
 
Последнее редактирование:
  • Спасибо
Реакции: Uta191 и LeonidB

К.Т.

Участник
Сообщения
301
Реакции
311
А можно примерно так же, только без формул, ворда и блокнота.
В экселе пишутся два соседних значения последовательности друг под другом, эти две ячейки выделяются и растягиваются вниз — заполнение последовательности происходит автоматически.
В первой колонке число остатка, во второй день недели, в третьей дата.
Единственная тонкость —задать нужный формат даты.
Потом вся получившаяся таблица копируется в InDesign, преобразуется в текст, затем нужные замены и заливка.
Присвоить стили можно тоже автоматом, определив в абзацных стилях "следующий стиль".
 

DrEgor

Участник
Сообщения
630
Реакции
62
наверное и скриптом можно... примерно по такому принципу -

Код:
const monthNames = ["Январь", "Фервраль", "Березень", "April", "мЯу", "Июнь",  "Июль", "Август", "В ШКОЛУ", "Октябрь", "ябрь...", "ябрь.."
];

const d = new Date();
alert("сейчас " + monthNames[(d.getMonth()+1)]);


перебрать даты и месяца :)
 
  • Спасибо
Реакции: Uta191 и Валера1966

Petruccio

15 лет на форуме
Сообщения
909
Реакции
189
В Екселе вводите дату когда должен начаться календарь, нажимаете Ctrl+1, категория Custom, вставляете это:
Код:
dddd, [$-10819]dd mmmm yyyy
У меня локаль не русская, поэтому в квадратных скобках указывается некий код русской локали.
В соседнем столбце пишете 380, ячейкой ниже — 379. Растягиваете оба диапазона, пока в правом столбце не появится ноль.
Далее сохраняйте в текст и Data Merge.
 
  • Спасибо
Реакции: NNN5, RIKITIKI и Uta191

К.Т.

Участник
Сообщения
301
Реакции
311
Код:
dddd, [$-10819]dd mmmm yyyy

В русской локализации:
ДДДД [$-ru-RU-x-genlower]Д ММММ ГГГГ "г."

Код x-genlower:
"gen" — genitive (родительный падеж),
"lower" — нижний регистр.
Есть ещё варианты genupper и nomlower (nom — именительный).

(Data Merge штука хорошая, но в подобных случаях слегка излишняя.)
 

Uta191

Участник
Топикстартер
Сообщения
30
Реакции
0
Всем огромное спасибо, как-то меня зациклило на скриптах, думаю, ваш вариант с exel и его настройками суперский! Очень выручаете!
 

Uta191

Участник
Топикстартер
Сообщения
30
Реакции
0
Первая мысль: таблицу в Excel сделать.
Первая графа — дата (потом не идёт в работу), формат ячейки "дата", формула "плюс один" от предыдущей.
Вторая — остаток дней (формула "минус 1").
Третья — формула Excel "день недели" от первой графы.
Далее — по формулам Excel "день" и "месяц".

Затем сделайте в последней графе нечто вроде
=СЦЕПИТЬ ()
в скобках расставьте #"Вторая графа"; символ @, например; затем "Третья графа", символ пробела; "Четвёртая" и "Пятая" графы.
=СЦЕПИТЬ ("#";B1;"@";C1;" ";D1;" ";E1)

Получите склеенную ячейку типа
#380@понедельник 26 апреля

Экспортируйте в Ворд последние ячейки, там выделите эту таблицу, "Таблица-Преобразовать в текст".
Получите поток строк типа
#380@понедельник 26 апреля
#379@вторник 27 апреля
#378@среда 28 апреля

Скопируйте в Блокнот и перенесите в Индизайн.
Затем сделайте на мастер-шаблоне фрейм для автоматической разливки.
Сам полученный текст улучшите:
0) всему тексту присвойте стиль, нужный во второй строке (день недели, день, месяц)
1) сделайте СтильАбзаца для числа "Остаток дней"
2) замените @ на "конец параграфа"
3) переприсвойте строкам с символом # — СтильАбзаца "Остаток дней"
4) удалите символ #.
Спасибо! Все было бы шикарно, если б я так не тупила с exel, буду разбираться.
 

Uta191

Участник
Топикстартер
Сообщения
30
Реакции
0
А можно примерно так же, только без формул, ворда и блокнота.
В экселе пишутся два соседних значения последовательности друг под другом, эти две ячейки выделяются и растягиваются вниз — заполнение последовательности происходит автоматически.
В первой колонке число остатка, во второй день недели, в третьей дата.
Единственная тонкость —задать нужный формат даты.
Потом вся получившаяся таблица копируется в InDesign, преобразуется в текст, затем нужные замены и заливка.
Присвоить стили можно тоже автоматом, определив в абзацных стилях "следующий стиль".

Прошу прощения, а прям и день недели будет меняться? А звучит все шикарно, ушла пробовать. Спасибо!
 

К.Т.

Участник
Сообщения
301
Реакции
311
День недели — такой же атрибут даты, как число и месяц, чего бы ему не меняться.
Только удобнее всё же соединить день недели и число-месяц в одной ячейке, как указано после процитированного.
 
  • Спасибо
Реакции: NNN5 и Валера1966

Petruccio

15 лет на форуме
Сообщения
909
Реакции
189
В русской локализации:
ДДДД [$-ru-RU-x-genlower]Д ММММ ГГГГ "г."

Код x-genlower:
"gen" — genitive (родительный падеж),
"lower" — нижний регистр.
Есть ещё варианты genupper и nomlower (nom — именительный).

(Data Merge штука хорошая, но в подобных случаях слегка излишняя.)
Превратилось в арабский в английской локализации.
Если написать вот так
Код:
dddd, [$-FC19] d mmmm yyyy
то работает, но вместо «Понедельник» пишет «Monday». Так что придется делать два столбца.
 

К.Т.

Участник
Сообщения
301
Реакции
311
то работает, но вместо «Понедельник» пишет «Monday». Так что придется делать два столбца.
Ну, я для русской написал.

Кстати, для русской локализации при работе вручную вся эта морока с форматом не нужна.
Формат даты с родительным падежом месяца в нижнем регистре доступен изначально под названием "длинный формат даты".
Это если программно задавать формат, тогда эти коды понадобятся.
 

Uta191

Участник
Топикстартер
Сообщения
30
Реакции
0
День недели — такой же атрибут даты, как число и месяц, чего бы ему не меняться.
Только удобнее всё же соединить день недели и число-месяц в одной ячейке, как указано после процитированного.
Я делаю постепенно🤣, когда начали меняться дни недели, чуть со стула не свалилась от радости... вау
 

Uta191

Участник
Топикстартер
Сообщения
30
Реакции
0
День и месяц сделаны, а вот обратный отсчет чет-то никак. Я решила сделать уже на месте, внедрю в поле с цифрой отсчет страниц, там по-моему можно сделать реверсивный. Или совсем бред?
 

К.Т.

Участник
Сообщения
301
Реакции
311
День и месяц сделаны, а вот обратный отсчет чет-то никак.
А что не выходит?
Пишете в ячейке, например, 340.
В ячейке под ней 339.
Выделяете эти две ячейки и растягиваете вниз за уголок.
 

Uta191

Участник
Топикстартер
Сообщения
30
Реакции
0
А что не выходит?
Пишете в ячейке, например, 340.
В ячейке под ней 339.
Выделяете эти две ячейки и растягиваете вниз за уголок.
таким образом у меня только нижняя цифра много раз дублируется. Но я формулу подставила, получилось. Теперь следующая дурацкая проблема ведь в дата мердже потом каждая переменная встает на отведенное ей место, и, видимо в exel надо слить столбики с днями и столбики с месяцем и числом. Вот бьюсь теперь над этим.
 

Gadalka

15 лет на форуме
Сообщения
2 385
Реакции
816
видимо в exel надо слить столбики с днями и столбики с месяцем и числом. Вот бьюсь теперь над этим.
Ctrl+С
Блокнот
Ctrl+V

При необходимости -- табуляции заменить на пробелы
 
  • Спасибо
Реакции: NNN5