-3

入力:

<Orderdate>130212</Orderdate><!-- date in the form of YYMMDD -->

以下の点を考慮する必要があります。

<Orderdate>、現在の日付 (今日の日付) で確認する必要があります。

  1. <Orderdate>が今日の日付より前の場合は、現在の日付に 2 日を追加します。

    考慮すべき以下の点

    • たとえば、今日の日付は 130602 で、これは日曜日です。2 日足すと 130604 になります。

      出力:

      <Orderdate>130604</Orderdate>
      
    • 今日の日付が 130531 (この場合は金曜日) の場合、土曜日と日曜日を除外する必要があるため、日付は 130604 になります。

      出力:

      <Orderdate>130604</Orderdate>
      
    • 今日の日付が 130530 の場合、木曜日に 2 日足すと土曜日 (土曜日、日曜日を除く) になるため、日付は 130603 になります。

      出力:

      <Orderdate>130603</Orderdate>
      
  2. <Orderdate>が現在の日付より大きい場合(今日の日付)

    出力で同じ値であるため、取得する必要があります。

    入力:

    <Orderdate>130608</Orderdate>
    

    出力:

    <Orderdate>130608</Orderdate><!-- which is greater than today date so direct value in the output -->
    
4

1 に答える 1

1

XSLT 1.0 には、現在の日付を決定するための組み込み関数がありません。そのため、これをパラメータとしてスタイルシートに渡す必要があります ( per <xsl:param />)。特定の日付に日数を追加するには、http://blog.dlwelch.com/?p=25 をご覧ください。

または、XSLT プロセッサによっては、この日付演算全体を XSLT の外部で実行することが最善の解決策になる場合があります (たとえば、Saxon ではカスタム Java メソッドの呼び出しが許可されています)。

于 2013-06-02T10:15:15.110 に答える