1

このような月のキーがあります"201208"

SQL からデータを読み取り、 として返していDataTableます。それから私は私のをループしていDataTableます。

For Each dr As DataRow In dt.Rows
   Dim s As String = dr.Item(0)
Next

sの文字列は次のようになります。"201208" この文字列を に変換する方法はyear, first day of the month and last day of the month?

文字列を 2 つの別々の s に分割する方法を探していますdim

どんな提案でも大歓迎です。

4

4 に答える 4

6

最も簡単な方法は、文字列を として解析し、Dateその月の最終日を計算することです。

次のことを試してください。

Dim s = "201208"
Dim firstDay = Date.ParseExact(s, "yyyyMM", Nothing)
Dim lastDay = firstDay.AddMonths(1).AddDays(-1)
Dim year = firstDay.Year
于 2012-09-12T10:01:27.017 に答える
5

まず、DateTime.TryParseExact メソッドを「ddMMyy」形式で使用して、文字列を解析して DateTime に変換します。

次に、次のようなものを使用します

Dim startDate As New DateTime(dbDate.Year, dbDate.Month, 1)
Dim endDate As DateTime = startDate.AddMonths(1).AddDays(-1)

StartDate と EndDate を取得する

于 2012-09-12T10:01:29.650 に答える
1

これは私のために働く:

Function FormatDate(ByVal dateKey As String) As String
    Dim x As DateTime = DateTime.ParseExact(dateKey, "yyyyMM", Nothing)
    FormatDate = String.Format("Year: {0}; First day of month: {1}; Last day of month: {2}", x.Year, x.AddDays(-x.Day).ToString("dddd"), x.AddMonths(1).AddDays(-x.Day).ToString("dddd"))
End Function

この関数は次のように使用できます。

Dim dateDetails As String = FormatDate("201208")
于 2012-09-12T10:06:17.437 に答える
0
  1. その文字列を年と月に分割します ( Substringを参照)
  2. 「1」を月の最初として使用します -> それが開始日です
  3. 1 か月足して 1 日引く -> それが終了日です
于 2012-09-12T09:59:41.237 に答える