BizTalk C# Functoid Создание динамических дат

Я столкнулся с небольшой проблемой, когда мне может понадобиться некоторый вклад в то, как сделать это возможным.

В моем решении я всегда буду получать конкретное сообщение, чтобы вызвать это. Что я хочу сделать, так это всегда генерировать StartDate и EndDate, но один функтоид вызывает каждый метод.

Так, например, если файл получен 2016-12-20, имя узла EndDate получает значение ("2016-12-20 23:59:59.999999"), а StartDate затем получает 2016-12-14 00:00: 00.000000. Что на неделю назад.

Два разных функтоида, поэтому по одному методу для каждого, мы работаем с серверным временем, поэтому мы не получаем никаких дат и т. Д. Похоже, мне нужно сделать что-то вроде этого.

    public string FormatDate(string outputFormat)
        {
            System.DateTime date;
            if (System.DateTime.TryParseExact(               System.Globalization.CultureInfo.InvariantCulture,
                System.Globalization.DateTimeStyles.AssumeLocal, out date))
            {
                return date.ToString(outputFormat);
            }
            return "";
        }

Но не могу обдумать это


person Wookoai    schedule 22.11.2017    source источник
comment
Я не уверен, но когда я прочитал ваш вопрос, вы хотите GETDATE(), манипулировать временем от этого GETDATE() до 23:59:59:999 и получить относительно этого "GETDATE() - 7days" и установить время в последнем до 00:00:00:000?   -  person kurdy    schedule 22.11.2017


Ответы (1)


Поскольку вы генерируете даты из системного времени, вам не нужно ничего пытаться анализировать. Вы можете просто вычислить значения из статического свойства DateTime.Today, которое содержит сегодняшнюю дату в полночь по местному времени.

Функтоид 1:

DateTime startDate = DateTime.Today.AddDays(-6);

public string GetStartDate(string outputFormat)
{
    return startDate.ToString(outputFormat);
}

Функтоид 2:

public string GetEndDate(string outputFormat)
{
    return startDate.AddDays(7).AddTicks(-1).ToString(outputFormat);
}

Используя одну и ту же переменную startDate внутри обеих функций, вы можете быть уверены, что она не пропускает ни дня в маловероятном случае, когда код выполняется ровно в полночь.

person Ruud    schedule 22.11.2017
comment
WoW, это было на самом деле очень чистое решение, вера в ответ. Всегда здорово находить новые решения от разных умов! - person Wookoai; 23.11.2017