我有一个月份密钥,看起来像"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
。
任何建议都非常感谢。
答案 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)