代码之家  ›  专栏  ›  技术社区  ›  Wookoai

BizTalk C#Functoid生成动态日期

  •  0
  • Wookoai  · 技术社区  · 7 年前

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

    在我的解决方案中,我总是会得到一个特定的消息来触发这个。 我想做的是始终生成StartDate和EndDate,但每个方法都由一个functoid调用。

    例如,如果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 "";
            }
    

    但我无法理解

    1 回复  |  直到 7 年前
        1
  •  0
  •   Ruud    7 年前

    由于您从系统时间生成日期,因此不必尝试解析任何内容。您只需从静态 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变量,您可以确保它不会跳过一天,在极不可能的情况下,代码恰好在午夜运行。

    推荐文章