我正在做一个关于vb.net的项目,我必须确定一个月中的天数,以及给定的年份是否是闰年。所有的代码都已完成。所有我不能做的是一个消息框将出现的编码,如果月份是不正确的。
Dim year, days As Double
Dim leap As Boolean
Dim monthint As Integer
Dim monthstr As String
days = 0
leap = False
year = txtTheyear.Text
monthstr = txtThemonth.Text
If monthstr = "January" Then
monthint = 1
leap = Date.IsLeapYear(year)
days = System.DateTime.DaysInMonth(year, monthint)
Lstbx1.Items.Add(year)
Lstbx1.Items.Add(leap)
Lstbx1.Items.Add(days)
End If
If monthstr = "February" Then
monthint = 2
leap = Date.IsLeapYear(year)
days = System.DateTime.DaysInMonth(year, monthint)
Lstbx1.Items.Add(year)
Lstbx1.Items.Add(leap)
Lstbx1.Items.Add(days)
End If
If monthstr = "March" Then
monthint = 3
leap = Date.IsLeapYear(year)
days = System.DateTime.DaysInMonth(year, monthint)
Lstbx1.Items.Add(year)
Lstbx1.Items.Add(leap)
Lstbx1.Items.Add(days)
End If
If monthstr = "April" Then
monthint = 4
leap = Date.IsLeapYear(year)
days = System.DateTime.DaysInMonth(year, monthint)
Lstbx1.Items.Add(year)
Lstbx1.Items.Add(leap)
Lstbx1.Items.Add(days)
End If
If monthstr = "May" Then
monthint = 5
leap = Date.IsLeapYear(year)
days = System.DateTime.DaysInMonth(year, monthint)
Lstbx1.Items.Add(year)
Lstbx1.Items.Add(leap)
Lstbx1.Items.Add(days)
End If
If monthstr = "June" Then
monthint = 6
leap = Date.IsLeapYear(year)
days = System.DateTime.DaysInMonth(year, monthint)
Lstbx1.Items.Add(year)
Lstbx1.Items.Add(leap)
Lstbx1.Items.Add(days)
End If
If monthstr = "July" Then
monthint = 7
leap = Date.IsLeapYear(year)
days = System.DateTime.DaysInMonth(year, monthint)
Lstbx1.Items.Add(year)
Lstbx1.Items.Add(leap)
Lstbx1.Items.Add(days)
End If
If monthstr = "August" Then
monthint = 8
leap = Date.IsLeapYear(year)
days = System.DateTime.DaysInMonth(year, monthint)
Lstbx1.Items.Add(year)
Lstbx1.Items.Add(leap)
Lstbx1.Items.Add(days)
End If
If monthstr = "September" Then
monthint = 9
leap = Date.IsLeapYear(year)
days = System.DateTime.DaysInMonth(year, monthint)
Lstbx1.Items.Add(year)
Lstbx1.Items.Add(leap)
Lstbx1.Items.Add(days)
End If
If monthstr = "October" Then
monthint = 10
leap = Date.IsLeapYear(year)
days = System.DateTime.DaysInMonth(year, monthint)
Lstbx1.Items.Add(year)
Lstbx1.Items.Add(leap)
Lstbx1.Items.Add(days)
End If
If monthstr = "November" Then
monthint = 11
leap = Date.IsLeapYear(year)
days = System.DateTime.DaysInMonth(year, monthint)
Lstbx1.Items.Add(year)
Lstbx1.Items.Add(leap)
Lstbx1.Items.Add(days)
End If
If monthstr = "December" Then
monthint = 12
leap = Date.IsLeapYear(year)
days = System.DateTime.DaysInMonth(year, monthint)
Lstbx1.Items.Add(year)
Lstbx1.Items.Add(leap)
Lstbx1.Items.Add(days)
End If
With Lstbx1.Items
.Clear()
.Add("Year" & vbTab & vbTab & "Is it a leap year" & vbTab & "Month" & vbTab & "Number of days")
.Add("----" & vbTab & vbTab & "-----------------" & vbTab & "-----" & vbTab & "--------------")
.Add(txtTheyear.Text & vbTab & vbTab & leap & vbTab & vbTab & txtThemonth.Text & vbTab & days)
End With为一个消息框尝试过的代码:
If monthstr= "January" or "February" ...
Then ...
Else MsgBox ("Type the month correctly")
End if发布于 2016-03-24 14:46:48
它需要是
If monthstr="January" or monthstr="February" ...如果您想在这里使用IF,对于select,请参阅前面un-lucky提供答案
顺便说一句,你也可以用一种更短的方式(如果你想的话)来编写代码,只需使用下面这样的代码:
Private Sub btCreate_Click(sender As Object, e As RoutedEventArgs) Handles btStartButton.Click
'replace constants with values from your textboxes
Dim yearPart As String = "2010"
Dim monthpart As String = "January"
Dim dt As DateTime
Try
dt = DateTime.ParseExact("01 " + monthpart + " " + yearPart,
"dd MMMM yyyy",
Globalization.CultureInfo.InvariantCulture)
'MsgBox(dt.Year & " " & dt.Month & " " & Date.IsLeapYear(dt.Year))
Lstbx1.Items.Add(dt.Year)
Lstbx1.Items.Add(Date.IsLeapYear(dt.Year)))
Lstbx1.Items.Add(dt.Month)
Catch ex As Exception
MsgBox("Incorrect Entry..! Type the month correctly")
End Try
End Sub神奇之处在于MMMM短语中DateTime.ParseExact的第二个参数,因为这是一种表示月份的字面表示形式
发布于 2016-03-24 14:37:56
整个场景的简化代码:
Dim isSuccess As Boolean = True '<-- variable for checking whether the process completed successfully
Lstbx1.Items().Clear()
Select Case monthstr
Case "January", "jan", "january"
monthint = 1
Case "February", "feb", "february"
monthint = 2
Case "March", "mar", "march"
monthint = 3
'Write cases for other months too
Case "December", "dec", "december"
monthint = 12
Case Else
MsgBox("Incorrect Entry..! Type the month correctly")
End Select
'No wdo the operation here;
If Not isSuccess Then
leap = Date.IsLeapYear(year)
days = System.DateTime.DaysInMonth(year, monthint)
End If
' Here you can populate the List这样使用的好处:
January输入三个条件中的任何一个(“1月”、“1月”、“1月”)之前它将只接受January区分大小写)。case else中显示一条自定义消息,如果所有其他条件均为假https://stackoverflow.com/questions/36194288
复制相似问题