1

という名前の DateTimePicker がありdtpDateSelectionます。日付を選択するとき、日付を 2 つの変数に分割する必要があります。Quarter日付が入っている四半期と等しくする必要があります。日付が入っYearている年と等しくする必要があります。これを行う方法を知っていると思っていましたが、問題が発生しています。これが私が試したコードです:

Dim Year As String = DatePart("yyyy", dtpDateSelection)
Dim Quarter As String = DatePart("q", dtpDateSelection)

そして、これは私が得るエラーです:

Additional information: Argument 'DateValue' cannot be converted to type 'Date'.

4

3 に答える 3

1

簡単な解決策:

Dim year As Integer = DateTimePicker.Value.Year
Dim quarter As Integer = ((DateTimePicker.Value.Month - 1) \ 3) + 1
于 2013-09-30T16:48:13.280 に答える
1

他の人が指摘したように、DateTime 値には .Month メンバーがあります。四半期では、私は常に単純な選択機能を使用してきました

Dim quarter As Integer = Choose(DateTimePicker1.Value.Month, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4)

それを超えると、2 行のコードが機能しますが、.Value を dtpDateSelection の最後に追加する必要があります。DatePart 関数の 2 番目のパラメーターには Object 型があるため、コントロールを渡すことができますが (これはあなたが行っていることです)、最終結果はエラーになります。.Value は、ピッカーで選択された日付に変更します。

Dim Year As String = DatePart("yyyy", dtpDateSelection.Value)
Dim Quarter As String = DatePart("q", dtpDateSelection.Value)
于 2013-09-30T17:36:54.283 に答える
1

したがって、プロパティDateTimeからの値がありDateTimePicker.Valueます。

これを使用して、次のように日付の年を取得できます。

Dim year As Integer = DateTimePicker.Value.Year

日付が含まれる四半期を特定するには、次のようにします。

Public Shared Function DetermineQuarter(dateTime As DateTime) As Integer
    If dateTime.Month <= 3 Then
        Return 1
    End If

    If dateTime.Month <= 6 Then
        Return 2
    End If

    If dateTime.Month <= 9 Then
        Return 3
    End If

    Return 4
End Function

これで、次のように四半期の値を取得できます。

Dim quarter As Integer = DetermineQuarter(DateTimePicker.Value)
于 2013-09-30T16:10:39.650 に答える