从月份密钥获取该月的第一天和最后一天

时间:2012-09-12 09:55:53

标签: asp.net sql vb.net

我有一个月份密钥,看起来像"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

任何建议都非常感谢。

4 个答案:

答案 0 :(得分:6)

最简单的方法是将字符串解析为Date,然后计算该月的最后一天。

尝试以下方法:

Dim s = "201208"
Dim firstDay = Date.ParseExact(s, "yyyyMM", Nothing)
Dim lastDay = firstDay.AddMonths(1).AddDays(-1)
Dim year = firstDay.Year

答案 1 :(得分:5)

首先,我会使用DateTime.TryParseExact Method 格式" ddMMyy"将字符串解析为DateTime。

然后我会使用像

这样的东西
Dim startDate As New DateTime(dbDate.Year, dbDate.Month, 1)
Dim endDate As DateTime = startDate.AddMonths(1).AddDays(-1)

获取StartDate和EndDate

答案 2 :(得分: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")

答案 3 :(得分:0)

  1. 将该字符串拆分为年份和月份(请参阅Substring
  2. 使用“1”作为本月的第一天 - >这是你的开始日期
  3. 添加一个月,减去一天 - >这是你的结束日期