如何仅使用XPath计算日期差异?

时间:2012-02-07 00:59:38

标签: xpath infopath

我在使用InfoPath创建的表单中有一个日期字段,允许用户输入日期,这可能是任务的截止日期。我想要另一个“计算值”字段:

  1. 如果日期已过,则显示“逾期”
  2. 如果没有,则显示到指定日期之前剩余的天数
  3. 这可以不编写VB / C#代码,只是将表达式粘贴到XPath对话框中吗?

    谢谢!

1 个答案:

答案 0 :(得分:2)

假设这是您的xml节点,用户输入日期值

    <due-date>2012-02-08</due-date>

然后如果输入的日期在当前日期之前,则xpath表达式将返回到期日的剩余天数,如果输入的日期超过当前日期,则返回“OverDue”。

    if((xs:date(current-date())) <= (xs:date(/due-date))) 
     then days-from-duration( (xs:date(/due-date)) - (xs:date(current-date())) ) 
     else 'OverDue'