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

konfuciy

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

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
21 267
Благодарностей
9 447
Баллы
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
Сообщения
21 267
Благодарностей
9 447
Баллы
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 132
Баллы
113
Регистрация
01.02.2018
Сообщения
6
Благодарностей
2
Баллы
3
  • Спасибо
Реакции: Sergodjan и Dimionix

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
21 267
Благодарностей
9 447
Баллы
113

Moonwalker

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

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

Вложения

zortexx

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

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

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

Вложения

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

Moonwalker

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

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

zortexx

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

Вложения

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

Murad

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

Sergodjan

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

Вложения

Murad

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

Philipp

Client
Регистрация
14.10.2019
Сообщения
101
Благодарностей
55
Баллы
28
Спасибо за сниппет, чисто из академического интереса, после получения вчерашней даты в таком формате 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
Сообщения
121
Благодарностей
11
Баллы
18
Использую спиппет из 15 поста для получения прошлого месяца, все работает отлично.
Но мне нужно получить еще два прошлых месяца, т.е. позапрошлый и месяц, который был до этого.
Например, сейчас 09 месяц, сниппетом я получаю 08 месяц прошлый, а как получить 07 и 06 месяц?
Подскажите, можно это как-то сделать?
 

Sergodjan

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

seowin

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

Sergodjan

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

или

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

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