Also hallo erstma 
Wir sollen in der Schule in Info was in VB programmiern und ich habe mich für einen Lebenszeitrechner entschieden, d.h. man gibt sein Geburtsdatum ein und er rechnet aus wie lang man schon lebt in Sekunden, Minuten, etc.
Ich wöllte ihm jetzt mit If´s klar machen das Tage >1 und <31 und Monate <1 und >12 sein müssen! Ich wollte das dann so machen, dass wenn die Zahlen größer sind, der Boolean-Wert "prüf" auf false springt und nichts berechnet wird.
Nur irgendwie klappt das nicht und er berechnet keine Eingaben mehr.
Wenn ich die Beschränkungen auskommentiere, rechnet er zwar, setzt aber danach in alle Felder eine Null. Was mach ich falsch?
In dem Zusammenhang habe ich noch 2 weitere Fragen:
1.Ganz unten hab ich noch ne Checkbox, die die Felder Stunde und Minute und ihre Labels unsichtbar macht. Wie kann ich das wieder rückgangig machen, wenn man den Haken rausnimmt?
2.Kann man i-wie ne Datenbank anlegen, damit das Programm beim Rechnen Schaltjahre und verschieden lange Monate berücksichtigt? Im Moment ist ein Monat 30 Tage und ein Jahr 365 Tage!
Danke schonmal,
Source Code kommt hier:
Spoiler anzeigen
[

Wir sollen in der Schule in Info was in VB programmiern und ich habe mich für einen Lebenszeitrechner entschieden, d.h. man gibt sein Geburtsdatum ein und er rechnet aus wie lang man schon lebt in Sekunden, Minuten, etc.
Ich wöllte ihm jetzt mit If´s klar machen das Tage >1 und <31 und Monate <1 und >12 sein müssen! Ich wollte das dann so machen, dass wenn die Zahlen größer sind, der Boolean-Wert "prüf" auf false springt und nichts berechnet wird.
Nur irgendwie klappt das nicht und er berechnet keine Eingaben mehr.
Wenn ich die Beschränkungen auskommentiere, rechnet er zwar, setzt aber danach in alle Felder eine Null. Was mach ich falsch?
In dem Zusammenhang habe ich noch 2 weitere Fragen:
1.Ganz unten hab ich noch ne Checkbox, die die Felder Stunde und Minute und ihre Labels unsichtbar macht. Wie kann ich das wieder rückgangig machen, wenn man den Haken rausnimmt?
2.Kann man i-wie ne Datenbank anlegen, damit das Programm beim Rechnen Schaltjahre und verschieden lange Monate berücksichtigt? Im Moment ist ein Monat 30 Tage und ein Jahr 365 Tage!
Danke schonmal,
Source Code kommt hier:
VB.NET-Quellcode
- Public Class Form1
- Dim Ergebnis As Double 'Ergebnisvariable wird definiert
- Dim tage As Double 'Variable "tage" wird definiert
- Dim monat As Double 'Variable "monat" wird definiert
- Dim jahr As Double 'Variable "jahr" wird definiert
- Dim sekunde As Double 'Variable "sekunde" wird definiert
- Dim minute As Double 'Variable "minute" wird definiert
- Dim stunde As Double 'Variable "stunde" wird definiert
- Dim jahrdiff As Double 'Variable der Differenz aus der Eingabe "jahre" und dem aktuellen Datum wird definiert
- Dim monatdiff As Double 'Variable der Differenz aus der Eingabe "monat" und dem aktuellen Datum wird definiert
- Dim tagesdiff As Double 'Variable der Differenz aus der Eingabe "tage" und dem aktuellen Datum wird definiert
- Dim stundendiff As Double 'Variable der Differenz aus der Eingabe "stunden" und dem aktuellen Datum wird definiert
- Dim minutendiff As Double 'Variable der Differenz aus der Eingabe "minuten" und dem aktuellen Datum wird definiert
- Dim sekundendiff As Double 'Variable der Differenz aus der Eingabe "sekunden" und dem aktuellen Datum wird definiert
- Dim rechnen As New Process
- Dim prüf As Boolean
- Dim fail As Process
- Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
- Timer1.Start() 'Timer wird gestartet
- prüf = True
- End Sub
- Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
- If TextBox1.Text = "" Or TextBox2.Text = "" Or TextBox3.Text = "" Then
- prüf = False
- End If
- If prüf = False Then
- GoTo fail
- End If
- TextBox1.Text = tage 'Variablen bekommen Wert zugewiesen
- TextBox2.Text = monat
- TextBox3.Text = jahr
- TextBox5.Text = stunde
- TextBox6.Text = minute
- prüf = tage > 1
- prüf = tage < 31
- prüf = monat > 1
- prüf = monat < 12
- prüf = jahr < Format(Now, "yyyy")
- If prüf = False Then
- GoTo fail
- End If
- If prüf = True Then
- GoTo rechnen
- End If
- rechnen: If ComboBox1.Text = "Monat/e" Then 'Combobox wird auf Eintrag überprüft und Berechnung startet
- jahrdiff = (Format(Now, "yyyy") - jahr) 'Differenzen werden gebildet
- monatdiff = (Format(Now, "MM") - monat)
- Ergebnis = (jahrdiff * 12) + (monatdiff) ' Berechnung des Ergebnisses
- TextBox4.Text = "Sie leben bereits " & Ergebnis & " " & ComboBox1.Text & "! Herzlichen Glückwunsch :)" ' Ergebnis wird in Textbox dargestellt, die eingeblendet wird
- TextBox4.Visible = True
- End If
- If ComboBox1.Text = "Tag/e" Then
- tage = TextBox1.Text
- monat = TextBox2.Text
- jahr = TextBox3.Text
- jahrdiff = (Format(Now, "yyyy") - jahr)
- monatdiff = (Format(Now, "MM") - monat)
- tagesdiff = (Format(Now, "dd") - tage)
- Ergebnis = (jahrdiff * 365) + (monatdiff * 30) + (tagesdiff)
- TextBox4.Text = "Sie leben bereits " & Ergebnis & " " & ComboBox1.Text & "! Herzlichen Glückwunsch :)"
- TextBox4.Visible = True
- End If
- If ComboBox1.Text = "Stunde/n" Then
- tage = TextBox1.Text
- monat = TextBox2.Text
- jahr = TextBox3.Text
- stunde = TextBox5.Text
- jahrdiff = (Format(Now, "yyyy") - jahr)
- monatdiff = (Format(Now, "MM") - monat)
- tagesdiff = (Format(Now, "dd") - tage)
- stundendiff = (Format(Now, "HH") - stunde)
- Ergebnis = ((jahrdiff * 8760) + (monatdiff * 720) + (tagesdiff * 24)) + (stundendiff)
- TextBox4.Text = "Sie leben bereits " & Ergebnis & " " & ComboBox1.Text & "! Herzlichen Glückwunsch :)"
- TextBox4.Visible = True
- End If
- If ComboBox1.Text = "Minute/n" Then
- tage = TextBox1.Text
- monat = TextBox2.Text
- jahr = TextBox3.Text
- stunde = TextBox5.Text
- minute = TextBox6.Text
- jahrdiff = (Format(Now, "yyyy") - jahr)
- monatdiff = (Format(Now, "MM") - monat)
- tagesdiff = (Format(Now, "dd") - tage)
- stundendiff = (Format(Now, "HH") - stunde)
- minutendiff = (Format(Now, "mm") - minute)
- Ergebnis = ((jahrdiff * 525600) + (monatdiff * 43200) + (tagesdiff * 1440) + (stundendiff * 60)) + (minutendiff)
- TextBox4.Text = "Sie leben bereits " & Ergebnis & " " & ComboBox1.Text & "! Herzlichen Glückwunsch :)"
- TextBox4.Visible = True
- End If
- If ComboBox1.Text = "Sekunden" Then
- Timer2.Start()
- End If
- fail: If prüf = False Then
- MsgBox("Es konnte keine Berechnung gestartet werden!Überprüfen sie ihre Eingaben!", MsgBoxStyle.Critical, "Failure")
- End If
- End Sub
- Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
- Label6.Text = TimeOfDay ' Uhrzeit wird angezeigt
- Label7.Text = Format(Now, ("dd.MM.yyyy")) ' Datum wird angezeigt
- End Sub
- Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
- TextBox4.Visible = False 'Textbox wird verdeckt
- Timer2.Stop()
- End Sub
- Private Sub TextBox2_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox2.TextChanged
- TextBox4.Visible = False 'Textbox wird verdeckt
- Timer2.Stop()
- End Sub
- Private Sub TextBox3_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox3.TextChanged
- TextBox4.Visible = False 'Textbox wird verdeckt
- Timer2.Stop()
- End Sub
- Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
- Me.Hide() 'Hauptfenster wird versteckt
- AboutBox1.Show() 'About-Fenster wird gezeigt
- End Sub
- Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
- tage = TextBox1.Text
- monat = TextBox2.Text
- jahr = TextBox3.Text
- jahrdiff = (Format(Now, "yyyy") - jahr)
- monatdiff = (Format(Now, "MM") - monat)
- tagesdiff = (Format(Now, "dd") - tage)
- stundendiff = (Format(Now, "HH") - stunde)
- minutendiff = (Format(Now, "mm") - minute)
- sekundendiff = (Format(Now, "ss"))
- Ergebnis = (jahrdiff * 31536000) + (monatdiff * 2592000) + (tagesdiff * 86400) + (stundendiff * 360) + (minutendiff * 60) + sekundendiff
- TextBox4.Text = "Sie leben bereits " & Ergebnis & " " & ComboBox1.Text & "! Herzlichen Glückwunsch :)"
- TextBox4.Visible = True
- End Sub
- Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged
- If CheckBox1.Enabled = True Then
- TextBox5.Visible = False
- TextBox6.Visible = False
- Label8.Visible = False
- Label9.Visible = False
- End If
- End Sub
- End Class