Laden...

Problem mit Addieren von Stunden und Minuten.

Erstellt von D3nNisD3luXe vor 13 Jahren Letzter Beitrag vor 13 Jahren 4.141 Views
D
D3nNisD3luXe Themenstarter:in
6 Beiträge seit 2010
vor 13 Jahren
Problem mit Addieren von Stunden und Minuten.

Hallo,
Ich habe gerade ein kleines Problem.
Ich möchte das man in 2 Textboxen jeweils Minuten und Stunden eingeben kann und diese dann auf die aktuelle Zeit addiert werden.
Aber es wird irgendwie immer nur die aktuelle Zeit ausgegeben.

       
        private void button1_Click(object sender, EventArgs e)
        {

            jetzt = DateTime.Now;

            if (textBox1.Text != "" && textBox2.Text != "")
            {
                serntestd1 = textBox1.Text;
                erntestd1 = Convert.ToInt32(serntestd1);

                serntemin1 = textBox2.Text;
                erntemin1 = Convert.ToInt32(serntemin1);
            }

            else
            {
                if (textBox1.Text == "")
                {
                    textBox1.Text = "00";

                    erntestd1 = 0;
                }

                if (textBox2.Text == "")
                {
                    textBox2.Text = "00";

                    erntemin1 = 0;
                }
            }


            endzeiternte1 = DateTime.Now;
            endzeiternte1.AddHours(erntestd1);
            endzeiternte1.AddMinutes(erntemin1);

            label14.Text = string.Format("{0:G}", endzeiternte1);

        }

S
417 Beiträge seit 2008
vor 13 Jahren

Hi,

du erhälst über die "Add..."-Methoden ein neues DateTime Objekt, welches die neuen Daten enthält.

Du brauchst also:

endzeiternte1 = endzeiternte1.AddHours(erntestd1);
6.911 Beiträge seit 2009
vor 13 Jahren

Hallo,

die AddHour/Minute-Methode geben ein neues DateTime zurück das du aber nicht verwendest 😉 (hat auch Sarc schon geschrieben)

BTW: Statt Convert.ToInt32 wäre die Verwendung von int.TryParse besser/sicherer.

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"

D
D3nNisD3luXe Themenstarter:in
6 Beiträge seit 2010
vor 13 Jahren

Funktioniert .
Vielen dank 😃

EDIT:

@ gfoidl
Danke für den Tipp . Ich werde auch mal mein Lehrer drauf ansprechen.

D
D3nNisD3luXe Themenstarter:in
6 Beiträge seit 2010
vor 13 Jahren

Ich hab nochmal ebend eine Frage. Ich hab jetzt einen Coundowntimer geschrieben und möchte das der Timer(Also der System.Windows.Forms.Timer) gestoppt wird wenn mein Countdowntimer auf Null steht.
Ich hab es schon mit if Abfragen versucht aber das funktioniert noch nicht so richtig.
Sry für die doofen Fragen. Ich arbeite heute zum ersten mal mit DateTime und TimeSpan usw.

        private void timer1_Tick(object sender, EventArgs e)
        {
            span1 = (DateTime.Now - endzeiternte1);

            label20.Text = string.Format("{0:hh} : {0:mm}", span1);

            

           
        }
3.430 Beiträge seit 2007
vor 13 Jahren

Hallo,

du kannst einfach abfragen ob deine EndZeit kleiner ist als die aktuelle Zeit.
Also


if(DateTime.Now >= endzeiterne1)
  timer1.Stop();

Bitte beachte [Hinweis] Wie poste ich richtig? 1.1 und 1.1.1

Gruss
Michael