2017-06-28 13 views
1

Ich versuche das aktuelle Datum zu vergleichen und versuche, eine Aktion auszuführen, wenn ein bestimmtes Datum kommt. aber es funktioniert nicht in C# unity. hier ist der Code:C# Zeit und Datum in Einheit vergleichen

string over = "2017/06/28 22:38:30"; 
string dateAndTimeVar = System.DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"); 

if (dateAndTimeVar == over) 
{ 
    print(dateAndTimeVar); 
} 
+2

Nun, sie müssten basierend auf dem zweiten übereinstimmen. Warum werden sie in Zeichenfolgen konvertiert, anstatt die DateTime-Objekte die Vergleiche verarbeiten zu lassen? – Mardoxx

Antwort

0

System.DateTime.Now, in seiner einfachsten Form, verwendet die Uhr des Computers das Programm ausgeführt wird. Da Sie Sekunden in Ihre Datumsangaben einschließen, muss die Bedingung, um sie als wahr auszuwerten, genau an der zweiten Stelle in der Zeichenfolge "over" angegeben werden. Wenn Sie nur den geposteten Code verwenden, ist es höchst unwahrscheinlich, dass Sie das Programm ausführen und die Bedingung genau zur angegebenen Sekunde auswerten könnten, ohne dass etwas anderes die Umgebung kontrolliert. Eine einfache Methode zum Debuggen wäre, die Variablen auszugeben oder einen Debugger zu verwenden, um zu sehen, was der Computer zum Zeitpunkt der Ausführung sieht.

0

Wenn ich ein häufiges Problem hatte, habe ich DateTime.Now verwendet, um die aktuelle Zeit zu erhalten. Zum Vergleichen von DateTime-Objekten ist es einfach, die Eigenschaft DateTime.Ticks zu verwenden. Weitere Informationen finden Sie hier:

https://msdn.microsoft.com/ru-ru/library/system.datetime.ticks(v=vs.110).aspx 

Wie ich aus dem Code zu verstehen, Sie wollen print(dateAndTimeVar); auszuführen, wenn die Zeit kommt. Es ist besser zu vergleichen, wie: