xslt 1.0 儒略日计算的参考/引用



看过 xsl 1.0 上的日期操作

<xsl:template name="JDN">
<xsl:param name="date"/>
<xsl:param name="year" select="substring($date, 1, 4)"/>
<xsl:param name="month" select="substring($date, 6, 2)"/>
<xsl:param name="day" select="substring($date, 9, 2)"/>
<xsl:param name="a" select="floor((14 - $month) div 12)"/>
<xsl:param name="y" select="$year + 4800 - $a"/>
<xsl:param name="m" select="$month + 12*$a - 3"/>
<xsl:value-of select="$day + floor((153*$m + 2) div 5) + 365*$y + floor($y div 4) - floor($y div 100) + floor($y div 400) - 32045" />

我想参考更具体的东西,而不是堆栈溢出答案......它似乎有效....我相信它基于日期时间的一些标准数学模型......是否有某种规范的 XSLT 1.0 实现?在书中或图书馆出版?即我怎么知道没有错别字?我认为在 XSLT 中实现模型并非易事,我不想重新发明轮子。

我根据朱利安日维基百科条目中发布的算法编写了上述模板。此后,他们改用了另一种算法。如果你想要原始算法的来源,你需要浏览文章的修订历史。

除了万维网联合会 (W3C( 发布的 XSLT 规范之外,XSLT 没有"规范"或"权威"来源。任何有权访问该算法的人都可以自己检查实现的正确性(并且强烈建议他们在互联网上找到的任何内容都这样做(。

我在O'Reilly的书中看到过这个模板:https://www.oreilly.com/library/view/xslt-cookbook-2nd/0596009747/ch04.html(这当然不能保证它是正确的,但在更正式的日期时间库中也可能存在错误。

如果您坚持使用 XSLT 1.0,如果您的处理器支持 EXSLT 日期模块,您也可以推迟到 EXSLT 日期模块 (http://exslt.org/date/(。MSXML允许您根据版本插入Javascript或C#代码。

相关内容

  • 没有找到相关文章

最新更新