日期字段上的XSLT1.0逻辑

时间:2013-06-02 08:35:25

标签: xslt

输入:

<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 -->
    

1 个答案:

答案 0 :(得分:1)

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

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