Laden...

Minuten rechnen

Erstellt von ganymedes vor 16 Jahren Letzter Beitrag vor 16 Jahren 1.942 Views
G
ganymedes Themenstarter:in
219 Beiträge seit 2007
vor 16 Jahren
Minuten rechnen

Hallo zusammen

Ich möchte die Minuten zwischen zwei Daten rechnen.

z.b. zwischen 1.2.2007 14:13:22 und 1.2.2007 18:54:35

Wie mache ich das am besten?

A
254 Beiträge seit 2007
vor 16 Jahren

Hi,

in ausführlicher Schreibweise ungefähr folgendermassen :

DateTime d1 = new DateTime(2007,2,1,14,13,22);
DateTime d2 = new DateTime(2007,2,1,18,54,35);

TimeSpan t = d2 -d1;
 double i = t.TotalMinutes;

Tschüss

G
ganymedes Themenstarter:in
219 Beiträge seit 2007
vor 16 Jahren

Wiso kann ich nicht folgendes machen??

in den Variablen befinden sich je ein Datum aus einer Abfrage


DateTime dateEinfahrt;
DateTime dateAusfahrt;

TimeSpan t = dateAusfahrt - dateEinfahrt;

ich erhalte dabei immer die Meldung

Fehler Verwendung der nicht zugewiesenen lokalen Variablen "dateAusfahrt"
Fehler Verwendung der nicht zugewiesenen lokalen Variablen "dateEinfahrt"

Die Variablen haben aber ein gültiges Datum drin!!

5.742 Beiträge seit 2007
vor 16 Jahren

Hallo,

Die Variablen haben aber ein gültiges Datum drin!!

Das kann nicht sein - wie erhältst du die Daten (etwas kompletterer Code wäre nicht schlecht)?

S
489 Beiträge seit 2007
vor 16 Jahren

In diesem Codebeispiel haste vergessen den Variablen Wete zuzuweisen.

G
ganymedes Themenstarter:in
219 Beiträge seit 2007
vor 16 Jahren

Die Variablen haben aber ein gültiges Datum drin

Die Daten kommen aus einer DB und wenn ich den Code


DateTime dateEinfahrt;
DateTime dateAusfahrt;

TimeSpan t = dateAusfahrt - dateEinfahrt;

auskommentiere ist da ein Datum drin und das PG läuft auch ohne Probleme!

Hast du villeicht noch eine Idee???

5.742 Beiträge seit 2007
vor 16 Jahren

Ähm, was passiert denn, wenn du


DateTime dateEinfahrt;
DateTime dateAusfahrt;

auskommentierst, also


//DateTime dateEinfahrt;
//DateTime dateAusfahrt;

TimeSpan t = dateAusfahrt - dateEinfahrt;

schreibst?

Eine Vermutung: Deine Klasse sieht etwa so aus:


public class Name
{
   private DateTime dateEinfahrt;
   private DateTime dateAusfahrt;

   public void Methode()
   {
       //DateTime dateEinfahrt;
       //DateTime dateAusfahrt;

       TimeSpan t = dateAusfahrt - dateEinfahrt;
   }
}

Kann das sein?

G
ganymedes Themenstarter:in
219 Beiträge seit 2007
vor 16 Jahren

das selbe...

Ich habe jetz rausgefunden was das Problem war! Ich muss beim erstellen der Variable einen Wert zuweisen:

z.B.


DateTime dateEinfahrt = DateTime.Now;
DateTime dateAusfahrt = DateTime.Now;

Jetzt geht es!

Weis jemand wie ich 0.0.0000 0:0:0 zuweisen kann?

M
1.439 Beiträge seit 2005
vor 16 Jahren

DateTime.MinValue

242 Beiträge seit 2006
vor 16 Jahren

Jetzt sehe ich den SInn aber nicht mehr richtig?!?

Wenn du die Differenz in Minuten ausrechnen willst dann musst du logischerweise eigene Werte in die Variable schreiben, deshalb ging es zuerst auch nicht. Jetzt hast du beiden Variablen DateTime.Now zugewiesen, und da du ja nach dieser Zuweisung keine weitere zuweisung machst kommt bei dem timespan immer 0 raus...

dann könntest du den code gleich so schreiben❔


TimeSpan t = new TimeSpan(0);

sry wenn ich was ned verstanden habe 🙂 (bin ja (noch?) ein noob🙂)

mfG b3nJ

G
ganymedes Themenstarter:in
219 Beiträge seit 2007
vor 16 Jahren

@marsgk


DateTime.MinValue

gibt bei mir den Wert 01.01.0001 00:00:00 und nicht alles Nullen

@B3nj
Nein ich sagte es doch schon x mal

Im Code weise ich den Variabeln werte aus der DB zu. Ich habe diesen Code NICHT publiziert.

Der Fehler lag in der Inizialisierung und in der zuweisung der Variabeln. Die Werte werden später duch Werte aus der DB übeschrieben.

Gruss und Danke für eure Tipps!

G
84 Beiträge seit 2007
vor 16 Jahren

Nein ich sagte es doch schon x mal

lol - sry, aber Du widersprichst Dir höchstens x mal.
Die Frage von B3nj ist vollkommen berechtigt.

Zuerst sagst Du, in den Variablen stehen Werte drin, dann fällt Dir auf, dass die Variablen doch nicht initialisiert sind zum Zeitpunkt Deines Vergleichs (was ja die Fehlermeldung ganz klar sagt).
Dann initialisierst Du sie mit now, damit deine Minutenber. funktioniert, um sie danach aus der DB zu überschreiben?
Wer soll das denn verstehen, bzw Dir auf dieser Basis effektiv helfen??

@marsgk
C#-Code:
DateTime.MinValue

gibt bei mir den Wert 01.01.0001 00:00:00 und nicht alles Nullen

Der 1.1.01 ist der Zeitpunkt Null der Microsoftschen Zeitrechnung - alle Zeitpunkte davor entsprechen einer negativen Anzahl von Ticks.
Davon abgesehen gibts das Datum 0.0.00 nicht 😉 - das wäre dann wohl der 31.12.01 BC - hm, ne interessante Frage^^