Можно ли используя {-TimeNow.Date-} получить вчерашнее, позавчерашнее число?

konfuciy

Client
Регистрация
07.05.2014
Сообщения
1 402
Благодарностей
131
Баллы
63
Можно ли используя {-TimeNow.Date-} получить вчерашнее, позавчерашнее число?
если можно, то как правильно это сделать?
мне нужно получить в таком формате, но число вчерашнее и число позавчерашнее - {-TimeNow.Datedd-MM-yyyy-}
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
19 440
Благодарностей
8 672
Баллы
113
Можно ли используя {-TimeNow.Date-} получить вчерашнее, позавчерашнее число?
если можно, то как правильно это сделать?
мне нужно получить в таком формате, но число вчерашнее и число позавчерашнее - {-TimeNow.Datedd-MM-yyyy-}
Код:
string date = "31-07-2015";
string format = "dd-MM-yyyy";
return DateTime.ParseExact (date, format, System.Globalization.CultureInfo.InvariantCulture).AddDays(-1).ToString(format, new System.Globalization.CultureInfo("EN"));
upload_2016-9-2_1-15-45.png
 

konfuciy

Client
Регистрация
07.05.2014
Сообщения
1 402
Благодарностей
131
Баллы
63
Регистрация
01.02.2018
Сообщения
6
Благодарностей
2
Баллы
3
Подскажите, а можно из позавчерашней даты выделить только день?
Обрезание переменной format до дня работает некоректно.
 
Последнее редактирование модератором:

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
19 440
Благодарностей
8 672
Баллы
113
Подскажите, а можно из позавчерашней даты выделить только день?
Обрезание переменной format до дня работает некоректно.
C#:
var date = DateTime.Now.ToString("dd");
string format = "dd";
return DateTime.ParseExact (date, format, System.Globalization.CultureInfo.InvariantCulture).AddDays(-2).ToString(format, new System.Globalization.CultureInfo("EN"));
 
Регистрация
01.02.2018
Сообщения
6
Благодарностей
2
Баллы
3
в таком случае перед 1 всегда идет 31. С февралем такое не прокатит(неговоря уже и каждом втором месяце)
Code (csharp):
  • var date = DateTime.Now.ToString("dd");
  • string format = "dd";
  • return DateTime.ParseExact (date, format, System.Globalization.CultureInfo.InvariantCulture).AddDays(-2).ToString(format, new System.Globalization.CultureInfo("EN"));
 

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 100
Баллы
113
Регистрация
01.02.2018
Сообщения
6
Благодарностей
2
Баллы
3
  • Спасибо
Реакции: Sergodjan и Dimionix

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
19 440
Благодарностей
8 672
Баллы
113

Moonwalker

Client
Регистрация
16.03.2016
Сообщения
1 353
Благодарностей
945
Баллы
113
Апну очередную темку ))
Вчера надо было в одном шаблоне для личных нужд подгружать вчерашнюю дату и прошлый месяц, взял варианты отсюда, в ПМ сработало без нареканий как надо.
При попытке запустить в Зеннопостере получаю ошибку -
Выполнение действия CSharp OwnCode Строка не распознана как действительное значение DateTime.

Формат вывода даты нужен именно такой: 2018-08-07 и 2018-07-
Шаблон прикладываю. Может, кто подскажет, в чем причина. В ПМ все срабатывает правильно, а вот ЗП выпендривается ))
 

Вложения

zortexx

Client
Регистрация
19.09.2011
Сообщения
2 520
Благодарностей
1 223
Баллы
113
Апну очередную темку ))
Вчера надо было в одном шаблоне для личных нужд подгружать вчерашнюю дату и прошлый месяц, взял варианты отсюда, в ПМ сработало без нареканий как надо.
При попытке запустить в Зеннопостере получаю ошибку -
Выполнение действия CSharp OwnCode Строка не распознана как действительное значение DateTime.

Формат вывода даты нужен именно такой: 2018-08-07 и 2018-07-
Шаблон прикладываю. Может, кто подскажет, в чем причина. В ПМ все срабатывает правильно, а вот ЗП выпендривается ))
Все то же самое на сишарпе (C#) - без каких либо ошибок.

Кстати, лучше не допускать, чтобы экшен в ПМ был обведен красным пунктиром. Потенциальная проблема появляется во всплывающем подсказке, при наведении мыши на проблемный экшен.
 

Вложения

  • Спасибо
Реакции: Moonwalker

Moonwalker

Client
Регистрация
16.03.2016
Сообщения
1 353
Благодарностей
945
Баллы
113
Все то же самое на сишарпе (C#) - без каких либо ошибок.

Кстати, лучше не допускать, чтобы экшен в ПМ был обведен красным пунктиром. Потенциальная проблема появляется во всплывающем подсказке, при наведении мыши на проблемный экшен.
Мне как бы не в лог надо было вывести, а в переменные положить )) Лог в конце просто для наглядности в ЗП был )))
Направление понял. Буду смотреть ))
Спасибо.
 

zortexx

Client
Регистрация
19.09.2011
Сообщения
2 520
Благодарностей
1 223
Баллы
113
Мне как бы не в лог надо было вывести, а в переменные положить )) Лог в конце просто для наглядности в ЗП был )))
Направление понял. Буду смотреть ))
Спасибо.
Ну так подставьте свои переменные в код. Делов то :-)
 

Вложения

  • Спасибо
Реакции: Moonwalker

Murad

Новичок
Регистрация
28.01.2019
Сообщения
6
Благодарностей
0
Баллы
1
Спустя столько лет оно перестало работать. Кто-нибудь может подсказать, как это исправить?
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
19 440
Благодарностей
8 672
Баллы
113
Спустя столько лет оно перестало работать. Кто-нибудь может подсказать, как это исправить?
В коде прописаны переменные-макросы, нужно подставить в код переменные в синтаксисе C#.
 

Вложения

Murad

Новичок
Регистрация
28.01.2019
Сообщения
6
Благодарностей
0
Баллы
1
Спасибо
 

Philipp

Client
Регистрация
14.10.2019
Сообщения
95
Благодарностей
38
Баллы
18
Спасибо за сниппет, чисто из академического интереса, после получения вчерашней даты в таком формате dd-MM-yyyy, хочу разложить по переменным день, месяц и год, есть ли способ более изящный чем парсить регулярками?


C#:
string day = project.Variables["day"].Value;
string month = project.Variables["month"].Value;
string year = project.Variables["year"].Value;

string date = $"{day}-{month}-{year}";
string format = "dd-MM-yyyy";
string result = DateTime.ParseExact (date, format, System.Globalization.CultureInfo.InvariantCulture).AddDays(-1).ToString(format, new System.Globalization.CultureInfo("EN"));

project.Variables["day"].Value = Regex.Match(result, ".*?(?=-)").ToString();
project.Variables["month"].Value = Regex.Match(result, "(?<=-).*?(?=-)").ToString();
project.Variables["year"].Value = Regex.Match(result, "(?<=.+-.+-).*").ToString();
 
Последнее редактирование:

seowin

Client
Регистрация
02.05.2016
Сообщения
106
Благодарностей
9
Баллы
18
Использую спиппет из 15 поста для получения прошлого месяца, все работает отлично.
Но мне нужно получить еще два прошлых месяца, т.е. позапрошлый и месяц, который был до этого.
Например, сейчас 09 месяц, сниппетом я получаю 08 месяц прошлый, а как получить 07 и 06 месяц?
Подскажите, можно это как-то сделать?
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
19 440
Благодарностей
8 672
Баллы
113
Использую спиппет из 15 поста для получения прошлого месяца, все работает отлично.
Но мне нужно получить еще два прошлых месяца, т.е. позапрошлый и месяц, который был до этого.
Например, сейчас 09 месяц, сниппетом я получаю 08 месяц прошлый, а как получить 07 и 06 месяц?
Подскажите, можно это как-то сделать?
В снипете "Прошлый месяц" в 3-ей строке замените -1 на -2 или -3 - получите прошлый и позапрошлый месяц.
 
  • Спасибо
Реакции: seowin

seowin

Client
Регистрация
02.05.2016
Сообщения
106
Благодарностей
9
Баллы
18
В снипете "Прошлый месяц" в 3-ей строке замените -1 на -2 или -3 - получите прошлый и позапрошлый месяц.
Пробовал сразу так сделать, но почему-то не сработало, возвращает всегда предыдущий месяц, даже если -2, -3 стоит
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
19 440
Благодарностей
8 672
Баллы
113
Пробовал сразу так сделать, но почему-то не сработало, возвращает всегда предыдущий месяц, даже если -2, -3 стоит
Тогда так: return DateTime.Now.AddMonths(-2);

или

В том шаблоне в снипете заменить AddDays(-1) на AddMonths(-2)
 
Последнее редактирование:
  • Спасибо
Реакции: seowin

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)