如何使用xslt獲取特定日期的一週的開始和結束?如何使用xslt獲取特定日期的一週的開始和結束?
-1
A
回答
0
注意:這是張貼回覆原始帖子,其中包括一個XSLT 2.0用戶定義的函數。這就是爲什麼以下內容也是相同的格式。在XSLT 1.0中做這件事有點困難,但絕對有可能。
難道這不是更簡單嗎?例如:
<xsl:function name="my:thisMonday">
<xsl:param name="date"/>
<xsl:variable name="epoch" select="xs:date('0001-01-01')"/>
<xsl:variable name="dayNumber" select="fn:days-from-duration($date - $epoch)"/>
<xsl:variable name="dayOfWeek" select="$dayNumber mod 7"/>
<xsl:value-of select="$date - xs:dayTimeDuration(concat('P', $dayOfWeek, 'D'))"/>
</xsl:function>
注:下面的命名空間,必須在樣式表聲明:
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:fn="http://www.w3.org/2005/xpath-functions"
xmlns:my="http://www.example.com/my"
0
我環顧四周互聯網找到一個XSL代碼來計算的一個星期的開始和結束具體的日期,但我不幸運,我準備了以下功能,我喜歡在這裏分享,以幫助他人。
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:myfn="http://myfn.com">
<xsl:output encoding="UTF-8"/>
<xsl:function name="myfn:startAndEndOfWeek">
<xsl:param name="date" />
<xsl:variable name="days">
<day weekday="0" name="Sunday" add="0" sub="6" />
<day weekday="1" name="Monday" add="6" sub="0" />
<day weekday="2" name="Tuesday" add="5" sub="1" />
<day weekday="3" name="Wednesday" add="4" sub="2" />
<day weekday="4" name="Thursday" add="3" sub="3" />
<day weekday="5" name="Friday" add="2" sub="4" />
<day weekday="6" name="Saturday" add="1" sub="5" />
</xsl:variable>
<xsl:variable name="specificDate" select="xs:date($date)" />
<xsl:variable name="weekday" select="myfn:day-of-week($specificDate)" />
<xsl:variable name="daysToSubtract" select="$days/*[@weekday=$weekday]/@sub" />
<xsl:variable name="weekStartsOn" select="$specificDate - (xs:dayTimeDuration(concat('P', $daysToSubtract, 'D')))" />
<xsl:variable name="daysToAdd" select="$days/*[@weekday=$weekday]/@add" />
<xsl:variable name="weekEndsOn" select="$specificDate + (xs:dayTimeDuration(concat('P', $daysToAdd, 'D')))" />
<xsl:value-of select="concat('WeekStartsOn: ', $weekStartsOn,' and WeekEndsOn: ',$weekEndsOn)"/>
</xsl:function>
<xsl:function name="myfn:day-of-week" as="xs:integer?" >
<xsl:param name="date" as="xs:anyAtomicType?"/>
<xsl:sequence select=" if (empty($date)) then() else xs:integer((xs:date($date) - xs:date('1901-01-06')) div xs:dayTimeDuration('P1D')) mod 7"/>
</xsl:function>
</xsl:stylesheet>
那一週假設從星期一開始,星期日結束。
希望這有助於。
如果需要更多幫助,請發表評論。
Abdo
相關問題
- 1. SQL:如何獲取周開始日期和周結束日期
- 2. 如何獲取本週的開始日期和結束日期?
- 3. 獲取本週的開始日期和結束日期(星期一從星期一開始,星期日結束)
- 4. 使用純javascript獲取下週的開始和結束日期
- 5. 如何獲取開始日期和結束日期之間的每週日期
- 6. PHP獲取52周開始/結束日期爲特定年份
- 7. 使用java獲取一週的開始和結束日期使用java
- 8. java - 獲取給定月份每週的開始日期和結束日期
- 9. Python獲取本週的開始和結束日期
- 10. 給定calendar.week_of_year,如何獲取本週開始和結束的日期?
- 11. 如何獲取給定開始日期和結束日期的中間日期?
- 12. 如何獲取一年的開始和結束日期?
- 13. postgress:SQLQuery:每週開始和結束日期
- 14. Rails - 獲取當前周和月的開始日期和結束日期
- 15. Sql如何從5周開始日期和結束日期
- 16. 如何獲取日期時間月開始和結束日期?
- 17. 如何在Android中獲取開始日期和結束日期?
- 18. 如何在sql中獲取開始日期和結束日期?
- 19. T-SQL - 根據週數獲取開始和結束日期。
- 20. 以給定開始日期和結束日期的一週爲間隔獲取所有日期
- 21. Android中本週開始和結束日期的日期爲
- 22. 自定義開始日期和結束日期爲一週的邏輯。 (c#)
- 23. 獲取PHP DatePeriod對象的開始日期和結束日期?
- 24. 獲取開始日期和結束日期的簡單方法
- 25. 獲取某月份的開始日期和結束日期
- 26. 獲取重疊的開始日期和結束日期
- 27. 獲取開始日期和結束日期 - 從給定年份開始yyyy
- 28. 如何在上個月使用JavaScript獲取開始日期和結束日期?
- 29. 如何獲取夏令時開始和結束的日期?
- 30. 如何獲得起始日期和IOS一週的結束日期
感謝您願意分享此內容!請查看http://stackoverflow.com/help/self-answer。 –
感謝Mathias分享這樣的stackoverflow信息。 –