2016-09-12 43 views
0

我需要從一個縮寫獲得一個月的數量:如何在vb.net中將MMM格式的月份轉換爲MM日期?

我有這樣的:

Dim monthname as string = "Jun" 

,我需要得到這個:

Dim monthnumber as integer = 6 

我怎樣才能得到呢?感謝

+1

http://stackoverflow.com/questions/3662292/converting-month-name-to-integer –

+0

我只需要字符串月份名稱轉換爲月份數,但沒有通過完整的日期 –

+0

你能告訴你如何將字符串轉換爲日期時間嗎? – sr28

回答

2

您可以使用ParseExact做到這一點:

Dim monthname as string = "Jun" 
Dim monthNumber as integer = DateTime.ParseExact(monthname , "MMM", CultureInfo.CurrentCulture).Month 

或者,創建一個字典:

Dim months = New Dictionary(Of String, Integer) From 
{{1, "Jan"}, {2, "Feb"}}, ... 

Dim monthNumber = months(monthname) 
+0

您的第一個代碼對我來說非常完美,感謝您的幫助 –

1

你可以嘗試使用這個:

DateTime.ParseExact("Jun", "MMM", CultureInfo.InvariantCulture) 

C#

var t = DateTime.ParseExact("Jun", "MMM", CultureInfo.InvariantCulture); 
var monthNum = t.Month; 

VB:

Dim t = DateTime.ParseExact("Jun", "MMM", CultureInfo.InvariantCulture) 
Dim monthNum = t.Month 
1

我測試的代碼正常工作。請同時導入System.Globalization。

Imports System 
Imports System.Globalization 

Public Class Test 
    Public Shared Sub Main() 
     Dim monthname as string = "Jun" 
     Dim monthnumber as integer = DateTime.ParseExact(monthName, "MMM", CultureIn 

fo.CurrentCulture).Month 
     System.Console.WriteLine(monthnumber) 
    End Sub 
End Class 
0
Sub Main() 
    MonthsAndNmubers.GetMonthNumber("Jan") 
End Sub 

Public Class MonthsAndNmubers 
    Private Shared ReadOnly monthsAndNumbers As IDictionary(Of String, Integer) = New Dictionary(Of String, Integer)() _ 
From { 
     {"Jan", 1}, _ 
     {"Feb", 2}, _ 
     {"Mar", 3}, _ 
     {"Apr", 4}, _ 
     {"May", 5}, _ 
     {"Jun", 6}, _ 
     {"Jul", 7}, _ 
     {"Aug", 8}, _ 
     {"Sep", 9}, _ 
     {"Oct", 10}, _ 
     {"Nov", 11}, _ 
     {"Dec", 12} _ 
    } 
    Public Shared Function GetMonthNumber(month As String) As Integer 
     Dim monthNumber As Integer = 0 
     monthsAndNumbers.TryGetValue(month, monthNumber) 
     Return monthNumber 
    End Function 
End Class 
相關問題