none
Monat aus aktuellem Datum als if Anweisung RRS feed

  • Frage

  • Hallo,

     

    ich bins nocheinmal.

     

    Ich schreibe einen kleinen Texteditor mit einer Eingabemaske.

    Die Eingabemaske ist die Form1

    Wenn der User eine neue Datei anlegt, erscheint dialog1.

    Mit dem klicken auf OK sollte dannn die Eingabemaske mit den bestimmten Informationen bestückt werden, zb. Datum in TextBox2 etc.

     

    Funktioniert soweit ganz gut, bis auf das mit dem Monats IF

     

    Da sich jeden Monat die min, med und max Werte ändern, sollte sie automatisch eingetragen werden.

    min gehört in die textbox 5

    med in die textbox 6

    und max in die textbox 7.

     

    Ich habe zur Probe einfach die Zahlen 1, 2, 3, 4, 5, 6 ...... hergenommen, aber es funktioniert einfach nicht,

    Hier mein Code:

     

    Form1.RichTextBox1.Clear()                            'RichtextBox1 löschen
        Form1.TextBox2.Text = System.DateTime.Now.Date              'Datum in TextBox2 eintragen
        Dim monat As Integer = Date.Today.Month
         If monat = 1 Then
          Form1.TextBox5.Text = "1"
          Form1.TextBox6.Text = "2"
          Form1.TextBox7.Text = "3"
        End If
        If monat = 2 Then
          Form1.TextBox5.Text = "4"
          Form1.TextBox6.Text = "5"
          Form1.TextBox7.Text = "6"
        End If

    Kann mir bitte jemand sagen, was ich falsch mache?????

     

    Viele Grüße

    Gab

    Dienstag, 1. Februar 2011 09:37

Antworten

  • Hi,

    versuchs mal so, mit einem Test, ohne die Textboxen:

        Dim monat As Integer = Date.Today.Month
        MsgBox(monat)
    
        If monat = 1 Then
          MsgBox("Januar")
        ElseIf monat = 2 Then
          MsgBox("Februar")
        Else
          MsgBox("ein anderer Monat")
          ' vielleicht machst du die Boxen woanders wieder leer.
        End If
    
    Eigentlich müsste das alles so funktionieren. Bei mir zeigt er alles korrekt an
    Please 'Mark as Answer' if I helped. This helps others who have the same problem!
    • Als Antwort markiert Bluefantasy Dienstag, 1. Februar 2011 19:58
    Dienstag, 1. Februar 2011 10:33
  • Hi,

    versuchs mal so, mit einem Test, ohne die Textboxen:

      Dim monat As Integer = Date.Today.Month
    
      MsgBox(monat)
    
    
    
      If monat = 1 Then
    
       MsgBox("Januar")
    
      ElseIf monat = 2 Then
    
       MsgBox("Februar")
    
      Else
    
       MsgBox("ein anderer Monat")
    
       ' vielleicht machst du die Boxen woanders wieder leer.
    
      End If
    
    
    Eigentlich müsste das alles so funktionieren. Bei mir zeigt er alles korrekt an
    Please 'Mark as Answer' if I helped. This helps others who have the same problem!

    Aber dann am Besten per Enumeration.
    • Als Antwort markiert Bluefantasy Dienstag, 1. Februar 2011 19:58
    Dienstag, 1. Februar 2011 12:10
  • Hallo Robert, Hallo RQ-1,

    alles super richtig, aber

    Bluefantasy wollte nur wissen, ob er auf dem richtigen weg ist und warum das belegen der Textboxen bei ihm nicht funktioniert. Und nicht den Monatsnamen wissen.

    If Date.Today.Month = 1 Then
     Form1.TextBox5.Text = "5"
    End if
    

    usw.

    Aber bei ihm hat sich nichts in den Textboxen bewegt. Vielleicht macht er die Textboxen unbeabsichtigt wieder leer.

     


    Please 'Mark as Answer' if I helped. This helps others who have the same problem!
    • Als Antwort markiert Bluefantasy Dienstag, 1. Februar 2011 19:59
    Dienstag, 1. Februar 2011 13:52

Alle Antworten

  • Hi Bluefantasy,

    was steht denn in monat dann drin, wenn

    Dim monat As Integer = Date.Today.Month

    ausgeführt wird?


    Please 'Mark as Answer' if I helped. This helps others who have the same problem!
    Dienstag, 1. Februar 2011 09:49
  • Hi Dennis

     

    Habe jetzt kompiliert und einen Haltepunkt gesetzt.

     

    Also der Wert, wenn ich mit der Maus auf monat fahre ist 0

     

     

    Dienstag, 1. Februar 2011 09:55
  • Habe jetzt mal die zeile "Dim monat As Integer = Date.Today.Month" weggelassen den Date.Today.Month direkt in die if Anweisung eingebaut, funktioniert aber auch nicht!

     

    If Date.Today.Month = 1 Then
          Form1.TextBox5.Text = "1"
          Form1.TextBox6.Text = "2"
          Form1.TextBox7.Text = "3"
        End If
        If Date.Today.Month = 2 Then
          Form1.TextBox5.Text = "4"
          Form1.TextBox6.Text = "5"
          Form1.TextBox7.Text = "6"
        End If
    beim kompillieren, wenn ich jezt mit der maus drüberfahre, ergibt der wert bei date.today.month 2, aber die TextBoxen bleiben weiterhin leer.

    Dienstag, 1. Februar 2011 10:04
  • Hi,

    versuchs mal so, mit einem Test, ohne die Textboxen:

        Dim monat As Integer = Date.Today.Month
        MsgBox(monat)
    
        If monat = 1 Then
          MsgBox("Januar")
        ElseIf monat = 2 Then
          MsgBox("Februar")
        Else
          MsgBox("ein anderer Monat")
          ' vielleicht machst du die Boxen woanders wieder leer.
        End If
    
    Eigentlich müsste das alles so funktionieren. Bei mir zeigt er alles korrekt an
    Please 'Mark as Answer' if I helped. This helps others who have the same problem!
    • Als Antwort markiert Bluefantasy Dienstag, 1. Februar 2011 19:58
    Dienstag, 1. Februar 2011 10:33
  • Hi,

    versuchs mal so, mit einem Test, ohne die Textboxen:

      Dim monat As Integer = Date.Today.Month
    
      MsgBox(monat)
    
    
    
      If monat = 1 Then
    
       MsgBox("Januar")
    
      ElseIf monat = 2 Then
    
       MsgBox("Februar")
    
      Else
    
       MsgBox("ein anderer Monat")
    
       ' vielleicht machst du die Boxen woanders wieder leer.
    
      End If
    
    
    Eigentlich müsste das alles so funktionieren. Bei mir zeigt er alles korrekt an
    Please 'Mark as Answer' if I helped. This helps others who have the same problem!

    Aber dann am Besten per Enumeration.
    • Als Antwort markiert Bluefantasy Dienstag, 1. Februar 2011 19:58
    Dienstag, 1. Februar 2011 12:10
  • Hallo Dennis Hemken und RQ-1,

    Also ich würde z.B. über MonthName Function (Visual Basic) gehen:

     

     Dim monat As String = String.Empty
      monat = MonthName(Date.Today.Month)
      '//monat = MonthName(Date.Today.Month, True)
    
      Console.WriteLine(monat)
    

     

    Für Deutsch kommt noch die Culture dazu:

    Imports System.Threading
    Imports System.Globalization
    
    Public Class Form1
    
      Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Thread.CurrentThread.CurrentCulture = New CultureInfo("de-DE", False)
    
        Dim monat As String = String.Empty
        monat = MonthName(Date.Today.Month)
        '//monat = MonthName(Date.Today.Month, True)
    
        Console.WriteLine(monat)
      End Sub
    End Class

     

    Grüße,

    Robert

    Dienstag, 1. Februar 2011 13:14
    Moderator
  • Hallo Dennis Hemken und RQ-1,

    Also ich würde z.B. über MonthName Function (Visual Basic) gehen:

     

     Dim monat As String = String.Empty
    
      monat = MonthName(Date.Today.Month)
    
      '//monat = MonthName(Date.Today.Month, True)
    
    
    
      Console.WriteLine(monat)
    
    

    Grüße,

    Robert

    Wenn er den reellen Namen haben möchte, ist das die optimale Lösung 
    Dienstag, 1. Februar 2011 13:19
  • Hallo Robert, Hallo RQ-1,

    alles super richtig, aber

    Bluefantasy wollte nur wissen, ob er auf dem richtigen weg ist und warum das belegen der Textboxen bei ihm nicht funktioniert. Und nicht den Monatsnamen wissen.

    If Date.Today.Month = 1 Then
     Form1.TextBox5.Text = "5"
    End if
    

    usw.

    Aber bei ihm hat sich nichts in den Textboxen bewegt. Vielleicht macht er die Textboxen unbeabsichtigt wieder leer.

     


    Please 'Mark as Answer' if I helped. This helps others who have the same problem!
    • Als Antwort markiert Bluefantasy Dienstag, 1. Februar 2011 19:59
    Dienstag, 1. Februar 2011 13:52
  • Hallo Bluefantasy,

    Kannst Du bitte Dein Problem deutlicher und völlig beschreiben?

    Umfasse mindestens die folgenden Schritte in der Beschreibung Deines Problems:

    1) Eine Übersicht der Funktionsweise von dem Programm

    2) Das Ergebnis des aktuellen Codes

    3) Was erwartest Du dass Dein Code machen soll

    4) Den Inhalt der Eingabedateien (falls zutreffend)

    Schließlich, sagt uns diese Datensammlung, was Du von deinem Code erwartest, so dass wir vergleichen können, was es tut, mit dem was Du möchtest. Die meiste Zeit, können die MVP Experten und andere Mitglieder des Forums fast sofort eine Antwort auf Deine Frage geben, indem sie diese Informationen verwenden.

    Relevanter Code zu posten (den ganzen Code) wäre auch nicht schlecht oder eine .zip Datei mit den ganzen Code (falls der Code zu groß ist) kann man ihm Public Ordner von SkyDrive laden und den link hier Posten. (Wie nutze ich den Skydrive?)

    ***************************************************************************

    @Dennis: Ja, ich hab’s schon verstanden dass das nur ein Stück Code von Bluefantasy war. Deshalb habe ich nur an Dich und an RQ-1 geschrieben strikt zu der Sache mit der Monaten “Enumeration“.

    Ich habe ein Fragezeichen über die Zeilen mit Form1.TextBox… weil das nicht unter Public Class 1 so funktioniert à hier verwendet man Me – in der Form1 Klasse Me bezieht sich auf Form1, also die aktuelle Objektinstanz.

    Warten wir mal noch zusätzliche Infos von BlueFantasy.

    Danke und Grüße,

    Robert

    Dienstag, 1. Februar 2011 14:42
    Moderator
  • Hallo an alle!!!

     

    Ich muss mich bei euch für meine Dummheit entschuldigen.

     

    Der ganze Programmaufbau war ursprünglich so gedacht, das der User diese besagten werte per Hand einschreibt.

    Jedes mal wenn er also eine neue Datei anlegt, sollten diese Werte wieder gelöscht werden, sodass man die Textboxen wieder leer hat.

     

    Habe ein kleines durcheinander in meinem Programm und diese Befehle zum löschen des Inhaltes übersehen.

     

    Tut mit leid, das ich eure Zeit in Anspruch genommen habe.

     

    Für alle die Info wo mein Fehler lag:

     

    Ich habe im Codeblock diese 3 Befehle eingegeben, kein wunder, das das dann nicht funktionieren kann.

    Form1.TextBox5.Clear()                          
        Form1.TextBox6.Clear()                          
        Form1.TextBox7.Clear()                          

    Wie konnte ich das nur übersehen?!?!?!?!

     

    Habe jetzt diese 3 Zeilen rausgelöscht und mit dem folgenden Code funktioniert es wunderbar

    If Date.Today.Month = 1 Then
          Form1.TextBox5.Text = "1"
          Form1.TextBox6.Text = "2"
          Form1.TextBox7.Text = "3"
    End If
    If Date.Today.Month = 2 Then
          Form1.TextBox5.Text = "4"
          Form1.TextBox6.Text = "5"
          Form1.TextBox7.Text = "6"
    End If

    Entschuldigt bitte nochmal meinen Fehler und vielen dank für eure Bemühungen!!!!!!!!

     

    Liebe Grüße

    Gab

    Dienstag, 1. Februar 2011 19:58