-3

输入:

<Orderdate>130212</Orderdate><!-- date in the form of YYMMDD -->

我们应该考虑以下几点。

应该检查当前<Orderdate>日期(今天日期)。

  1. 如果<Orderdate>小于今天日期,则将 2 天添加到当前日期。

    我们应该考虑以下几点

    • 例如今天的日期是 130602,即星期日。我们必须添加 2 天,然后它将变为 130604。

      输出:

      <Orderdate>130604</Orderdate>
      
    • 如果今天的日期是 130531,在我们的例子中是星期五,我们必须排除星期六和星期日,所以日期将变为 130604。

      输出:

      <Orderdate>130604</Orderdate>
      
    • 如果今天的日期是 130530,即星期四加上 2 天变成星期六(不包括星期六、星期日),那么日期将变成 130603。

      输出:

      <Orderdate>130603</Orderdate>
      
  2. 如果<Orderdate>大于当前日期(今天日期)

    我们必须得到,因为它在输出中是相同的值。

    输入:

    <Orderdate>130608</Orderdate>
    

    输出:

    <Orderdate>130608</Orderdate><!-- which is greater than today date so direct value in the output -->
    
4

1 回答 1

1

XSLT 1.0 没有用于确定当前日期的内置函数。所以这必须作为参数传递给样式表(per <xsl:param />)。要为特定日期添加天数,您可以查看http://blog.dlwelch.com/?p=25

或者,根据您的 XSLT 处理器,它可能是在 XSLT 之外执行整个日期算术的最佳解决方案(例如,Saxon 允许调用自定义 Java 方法)。

于 2013-06-02T10:15:15.110 回答