【问题标题】:BizTalk C# Functoid Generate dynamic DatesBizTalk C# Functoid 生成动态日期
【发布时间】:2017-11-22 13:31:44
【问题描述】:

我遇到了一个小挑战,我可能需要一些关于如何使这成为可能的意见。

在我的解决方案中,我总是会收到一条特定的消息来触发它。 我想要做的是始终生成一个 StartDate 和一个 EndDate,但是一个 functoids 调用每个方法。

因此,例如,如果在 2016-12-20 收到文件 节点名称 EndDate 获取值(“2016-12-20 23:59:59.999999”),然后 StartDate 获取 2016-12-14 00:00:00.000000。 倒退一周。

两种不同的 functoid,因此每种方法都使用一种方法,我们正在使用服务器时间,因此我们不会收到任何日期等。 感觉我需要做这样的事情

    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 "";
        }

但我无法理解这个

【问题讨论】:

  • 我不确定,但是当我读到你的问题时,你想要一个 GETDATE(),将时间从这个 GETDATE() 操纵到 23:59:59:999 并获得相对于这个' GETDATE() - 7days' 并将后者的时间设置为 00:00:00:000?

标签: c# date biztalk biztalk-mapper


【解决方案1】:

由于您从系统时间生成日期,因此您无需尝试解析任何内容。您可以从静态 DateTime.Today 属性中计算值,该属性包含当地时间午夜的今天日期。

Functoid 1:

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

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

Functoid 2:

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

通过在两个函数中使用相同的 startDate 变量,您可以确保它不会在极不可能的情况下跳过一天,代码恰好在午夜运行。

【讨论】:

  • 哇,这实际上是一个非常干净的解决方案伙伴,回复信条。从不同的角度寻找新的解决方案总是很酷!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-01
  • 1970-01-01
  • 2017-06-04
  • 2015-01-06
  • 2015-04-28
  • 2014-07-23
相关资源
最近更新 更多