Можно ли получить код для ГОДА + НЕДЕЛИ от начального и конечного дат в XSL1.0? - PullRequest
0 голосов
/ 09 мая 2019

У меня есть XML-файл с не так много информации.Я хочу получить номер недели из узла, который показывает дату в следующем формате: ГГГГ-ММ-ДД

Я хочу получить следующее: ГГГГ "W" WW

W стоитдля номера недели, например, 2019W20

Я пробовал некоторые коды с подстрокой из дат, но я получаю только один результат, например, 2019M04.Итак, я получаю год и месяц.Это логично, потому что в узле, с которого я получаю результат, нет номеров недели.Я не знаю, как извлечь из этого номера недели.

<TimeInterval type="regular" billable="true">
<StartDateTime>2019-04-22T00:00:00Z</StartDateTime>
<EndDateTime>2019-04-28T00:00:00Z</EndDateTime>
<Duration>7.00</Duration>
<RateOrAmount currency="EUR" type="Hourly" multiplier="100.00">22.16</RateOrAmount>
<AdditionalData>
<CustomerReportingRequirements>
<PurchaseOrderLineItem>0</PurchaseOrderLineItem>
</CustomerReportingRequirements>
</AdditionalData>
</TimeInterval>

Я ожидаю или я бы с удовольствием хотел получить результат 2019W17, потому что с 22 апреля по 28 апреля - неделя 17

1 Ответ

1 голос
/ 09 мая 2019

В библиотеке даты / времени EXSLT есть шаблон, который предоставляет эту функцию: см. http://exslt.org/date/functions/week-in-year/date.week-in-year.template.xsl

Чтобы использовать это:

  • скопируйте ссылочную таблицу стилей в локальный файлdate.week-in-year.template.xsl
  • добавить в свою таблицу стилей вызова <xsl:include href="date.week-in-year.template.xsl"/>
  • вызвать преобразование, используя:

код:

<xsl:variable name="week-number">
  <xsl:call-template name="date:week-in-year" xmlns:date="http://exslt.org/dates-and-times">
    <xsl:with-param name="date-time" select="$input"/>
  </xsl:call-template>
</xsl:variable>

где $input - указанная дата-время в формате ГГГГ-ММ-ДД.

...