Timer
-
Guten Morgen,
ich habe 2 Buttons. Das eine soll im MessageBox die aktuelle Uhrzeit und das andere Button, die vergangene Zeit, seitdem das Dialog gestartet wurde, anzeigen. Gibt es für die Uhrzeit eine Klasse? Die Methoden sollen statisch sein. Was heißt das?Liebe Grüße
Sonnenschein5
-
Uhrzeit:
http://msdn.microsoft.com/en-us/library/system.datetime.aspx
in deinem Zusammenhang dann noch TimeSpan:
http://msdn.microsoft.com/en-us/library/system.timespan.aspx
static:
http://msdn.microsoft.com/de-de/library/98f28cdx(v=vs.80).aspx
-
Für die Uhrzeit kannst du die allgemeine Zeitklasse verwenden. Diese nennt sich DateTime. Die aktuelle Zeit kannst du über
DateTime.Now.ToLongTimeString()
abrufen. Um die bereits vergangene Zeit abzurufen, musst du am Start deines Programms die momentane DateTime speichern. Du legst also in deinen Membervariablen eine Variable von DateTime an und weist im Load-Ereignis die Zeit zu.
DateTime startzeit; private void Form1_Load(object sender, EventArgs e) { startzeit = DateTime.Now; }
Zu dem Zeitpunkt, an dem du die vergangene Zeit abrufen möchtest, erzeugst du ein neues DateTime-Objekt, welches sich aus der Differenz von der momentanen Zeit und der abgespeicherten Startzeit zusammensetzt.
DateTime dauer = new DateTime(DateTime.Now.Ticks - startzeit.Ticks); string text = dauer.ToLongTimeString();
Gruß Ape
-
Vielen Dank für die Antworten. Hat mir sehr weiter geholfen :D.
wenn ich die Zeit anzeige, dann steht z.B. 00.00.04.4521031.
Wie kann ich die Millisekunden auf 2 Stellen kürzen oder ganz weglassen?Vielen Dank!
LG
Sonnenschein5
-
Es gibt auch die Methode ToShortTimeString(), mit der dann die Millisekunden ausgeblendet werden.
Gruß Ape
-
In der GUI-Main habe ich das Attribut: uhrzeitBeimStart:
private TimeSpan uhrzeitBeimStart = DateTime.Now.TimeOfDay;
In der Klasse "Timer" möchte ich auf dieses Attribut zugreifen, ohne dafür eine Methode oder eine Property anzulegen. Das Attribut muss aber private.
Habe ich die Möglichkeit drauf zuzugreifen? Wenn ja, wie?Vielen Danke!
Liebe Grüße
Sonnenschein5
-
Wiese legst du das TimeSpan-Objekt nicht einfach in der Klasse "Timer" an und rufst es bei Bedarf dann im Main daraus auf?
Gruß
Ape
-
ich soll das aber so machen
-
Dann übergib es doch als Parameter an die Methoden aus der Klasse "Timer", in denen du das Objekt benötigst.
Andernfalls kannst du mal versuchen, das TimeSpan-Objekt an die Klasse "Timer" zu übergeben und abzuspeichern, nachdem du sie in "Main" initialisiert hast. Es sollte dann eine Referenz aus deiner Klasse "Timer" auf das in "Main" angelegte TimeSpan-Objekt haben.
-
Oh man bin ich blöd
Einfach das Attribut als Parameter mitgeben, stimmtVielen Dank Ape
Liebe Grüße
Sonnenschein5