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

寻找一种将字符串拆分为两个单独dim的 s 的方法。

任何建议都非常感谢。

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

首先,我将使用格式为“ddMMyy”的DateTime.TryParseExact 方法将字符串解析为 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. 加一个月,减一天 -> 那是你的结束日期
于 2012-09-12T09:59:41.237 回答