2016-03-24 23 views
1

Im sıçrama veya değildir. Bütün kodlamalar bunun için tamamlandı. Tek yapamadığım şey, ayın yanlış şekilde atlanması durumunda görüntülenecek bir mesaj kutusu için kodlamadır. Bir ileti kutusu için çalıştı iveMesaj kutusu

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 

Kodlama:

If monthstr= "January" or "February" ... 
Then ... 
Else MsgBox ("Type the month correctly") 
End if 
+0

senin ayın edebi temsil anlamına gelen bir biçimi (" Tip çünkü ay doğru ")' – schudel

+0

@Sharon: Ben bunun için –

cevap

0

bütün senaryo için basitleştirilmiş kod: Böyle kullanmanın

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 

Avantajları:

  • Bizim tarafımızdan çoklu koşulları kontrol etmekten kaçınabilirsiniz seçme
  • ing kullanıcı üç herhangi birini girebilirsiniz ("Ocak", "Ocak", "Ocak") January için önce o) sadece January harf duyarlı kabul eder.
  • Soruda istediğiniz gibi; Diğer tüm koşullar ware eğer çalıştırır case else yılında özelleştirilmiş mesaj görüntüleyebilir yanlış
  • Size select un- tarafından previos cevaba bakınız için, buraya IF kullanmak Wanne eğer

    If monthstr="January" or monthstr="February" ... 
    

    olması gerekiyor

+0

Merhaba çok teşekkürler basitleştirilmiş bir şekilde bunları yapmak için yardımcı olacaktır bir cevap eklemiş !! Eğer doğru ayı yazıp i dont mesaj kutusu görünmüyor, ama tamam tıklarsanız programı gün = System.DateTime.DaysInMonth (yıl, monthint) ile bir hata kodlama beni geri alır ve diyor gidecekseniz zaman –

+0

çalışır Ayın bir ile on iki arasında olması gerektiğini söylüyor. Parametre adı: ay –

+0

@SharonMeyer: Ben hata için çözüm ile cevap güncelledik, bir göz Çalışıyor –

1

(isterseniz) Bu arada

şanslı basitçe böyle bir şey kullanarak çok daha kısa bir şekilde de kodlayabiliriz:

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 

"sihirli" MMMM ifadesinde DateTime.ParseExact ikinci argümanı ile olur bu Sen MsgBox.Show `arıyor olabilir