Xml 获取状态日期大于或等于今天的项目';使用xslt的s日期减去30天?

Xml 获取状态日期大于或等于今天的项目';使用xslt的s日期减去30天?,xml,sharepoint,xslt,Xml,Sharepoint,Xslt,我有两个日期,格式如下: 1) 2) 我正在使用SharePoint Designer创建一个条件来比较这些值。状态日期应大于或等于上个月的状态 我开始检查状态日期是否大于或等于上个月的状态,但我认为SPD的“翻译”错误。有什么想法吗 [@Item_x0020_ID = $dvt_ParentRow/@ID and number(translate(substring-before(../../../../../../../../../Rows/Row/@Status_x0020_

我有两个日期,格式如下:

1)

2)

我正在使用SharePoint Designer创建一个条件来比较这些值。状态日期应大于或等于上个月的状态

我开始检查状态日期是否大于或等于上个月的状态,但我认为SPD的“翻译”错误。有什么想法吗

    [@Item_x0020_ID = $dvt_ParentRow/@ID and 
number(translate(substring-before(../../../../../../../../../Rows/Row/@Status_x0020_Date,'T'),'-','')) 
<= number(translate(substring-before($Today,'T'),'-',''))]
[@Item\u x0020\u ID=$dvt\u ParentRow/@ID和
编号(翻译(前面的子字符串(../../../../../../../../../../../Rows/@Status_x0020_Date,'T')、'-'、'')

您不需要number函数,如果两个文本值都是数字,它只需将它们进行比较,就像它们是数字一样


我怀疑您的问题可能是使用了
,请您提供一个简短的(但具有代表性的)XML文档以及所需的转换输出?日期是否可以任意选择(如2010年5月11日和2002年15月1日)是否有必要让日期至少相差30天,或者月份部分至少少一天就足够了?这些问题和其他问题的答案都不在您的问题文本中。请改进。这可能很简单,但您需要发布一些输入示例…@Flynn1179:顺序比较运算符不能处理字符串数据输入XSLT 1.0如果值只是数字的文本表示,则输入XSLT 1.0;我想在这种情况下,翻译是必要的,尽管它可能不是一种比较日期的可靠机制,因为它会将所有月份都视为有100天!@flyn1179:它不是一种可靠的差分计算机制。它可能不适用于comparison如果格式将包括时区。你是指直接比较,还是使用模板?@Flynn1179:我不是说你的命名模板,我没有测试。我是说
fn:translate
<xsl:template name="calcdays">
  <xsl:param name="date" />
  <xsl:variable name="year" select="substring($date,1,4)" />
  <xsl:variable name="month" select="substring($date,6,2)" />
  <xsl:variable name="day" select="substring($date,9,2)" />
  <xsl:value-of select="(($year - 1970) * 365) + floor(($year - 1969) div 4) + substring('000,031,059,090,120,151,181,212,243,273,304,334,365',($month * 4) - 3,3) + ($day - 1) + (1 - floor((($year mod 4) + 2) div 3))*floor(($month + 17) div 20)" />
  </xsl:template>
</xsl:stylesheet>