Entwickler-Ecke
C# - Die Sprache - Simple Berechnung der Zeit
Dreshar - Do 29.07.10 13:30
Titel: Simple Berechnung der Zeit
Hallo liebe Mitglieder,
Ich bin noch relativ neu in der ganzen Szene und spiele mich grad ein bisschen rum. Mein Projekt soll eine Zeiterfassungssoftware werden in der man versch Projekte etc verwalten kann. Darum soll für jedes Projekt bzw Aufwand der Zeitaufwand geloggt werden. Beim erstellen eines Neuen Projekts (Button OK) will ich den Timer starten und dann bei beendigung durch den User die benötigte Zeit ausgeben. So weit so gut. Die Zeit erfasst in Millisekunden habe ich hinbekommen, jetzt versuch ich mich die ganze Zeit schon daran, die verstrichene Zeit in HH:MM:SS auszugeben, am besten ohne HH:MM:SS:MS (Math.Round)??? keine Ahnung. Hier bräuchte ich dann ein wenig eure Hilfe.... es klingt zwar banal aber jeder fängt mal an. Vielen Dank schonmal im Voraus.
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| private System.Diagnostics.Stopwatch _Stopwatch;
int ms = Convert.ToInt32(this._Stopwatch.ElapsedMilliseconds); int Stunden = ; int Minuten = ; int Sekunden = ; this._Stopwatch.Stop(); MessageBox.Show(Stunden.ToString() +":" + Minuten.ToString() +":" + Sekunden.ToString()); |
Die berechnungen hab ich mal rausgelassen da ich davon ausgeh das sowieso keine richtig war. Wie bekomm ich das denn jetzt hin das mir Korrekt die Millisekunden in Std Min Sek umgerechnet werden und es auch nicht über 60sec etc hinausgeht?
Chiller_No.1 - Do 29.07.10 13:34
So hier ein Codeschnipzel was ich vorkrzen brauchte. ;)
Schnapp dir eifnach das was du brauchst raus und versuch dein glcük.. sollte damit eig gelöst sein^^
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32:
| private void btn_startstop_Click_1(object sender, EventArgs e) { timer1.Enabled = !timer1.Enabled; }
int m_Minutes = 0; int m_Seconds = 0; int m_Hours = 0; int m_costtimer = 0;
const double COST_UNIT = 0.02056;
private void timer1_Tick(object sender, EventArgs e) { m_costtimer++; m_Seconds++; textBox_time.Text = m_Hours + " std." + " " + m_Minutes + " min." + " " + m_Seconds + " sek."; textBox_costs.Text = Convert.ToString(m_costtimer * COST_UNIT + " €");
if (m_Seconds == 59) { m_Seconds = 0; m_Minutes++; } if (m_Minutes == 59) { m_Minutes = 0; m_Hours++; } time = (m_Hours + " : " + m_Minutes + " : " + m_Seconds); string kosten = textBox_costs.Text; } |
EDIT: Das Prinzip wie ich die Zeit errechne is aber klar oder? ;)
Ralf Jansen - Do 29.07.10 13:49
Einfach nicht selbst rechnen. Dann kann man sich auch nicht verrechnen :wink:
C#-Quelltext
1:
| MessageBox.Show(string.Format("{0:00}:{1:00}:{2:00}", (int)_Stopwatch.Elapsed.TotalHours, _Stopwatch.Elapsed.Minutes, _Stopwatch.Elapsed.Seconds)); |
Chiller_No.1 - Do 29.07.10 13:54
Warum auch einfach wenns viel schwerer geht.. ;)
Dreshar - Do 29.07.10 14:02
Oh mann, das ich da nich selbst draufgekommen bin, ich hatte mal den Ansatz aber dann dachte ich mir so leicht wirds wohl nicht sein >.<. Naja auf jedenfall vielen Dank euch Jungs habt mir nen ganzes Stück weitergeholfen, nach 8std am Stück rumcoden wird man ganz weich inner Birne :P.
An beide ein /Danke für die echt schnelle Hilfe.
Auf bald!
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!