回答:
MSDN:DateTime.Compare
DateTime date1 = new DateTime(2009, 8, 1, 0, 0, 0);
DateTime date2 = new DateTime(2009, 8, 1, 12, 0, 0);
int result = DateTime.Compare(date1, date2);
string relationship;
if (result < 0)
relationship = "is earlier than";
else if (result == 0)
relationship = "is the same time as";
else
relationship = "is later than";
Console.WriteLine("{0} {1} {2}", date1, relationship, date2);
// The example displays the following output:
// 8/1/2009 12:00:00 AM is earlier than 8/1/2009 12:00:00 PM
Microsoftは、演算子「<」と「>」も実装しています。したがって、これらを使用して2つの日付を比較します。
if (date1 < DateTime.Now)
Console.WriteLine("Less than the current time!");
date1.ToLocalTime() < DateTime.Now
またはのいずれかでなければなりませんdate1.ToUniversalTime() < DateTime.UtcNow
。
MuSTaNGの答えはすべてを語っていますが、リンクなどを含めて少し複雑にするために、まだ追加しています。
従来のオペレーター
DateTime
.NET Framework 1.1以降で使用できます。また、DateTime
従来の演算子+
とを使用して、オブジェクトの加算と減算を行うこともでき-
ます。
MSDNからの一例:
平等:System.DateTime april19 = new DateTime(2001, 4, 19);
System.DateTime otherDate = new DateTime(1991, 6, 5);
// areEqual gets false.
bool areEqual = april19 == otherDate;
otherDate = new DateTime(2001, 4, 19);
// areEqual gets true.
areEqual = april19 == otherDate;
他の演算子も同様に使用できます。
以下は、で使用可能なすべての演算子のリストですDateTime
。
+
2つのためにDateTime
あなたが行うことができ、オペランドDateTime - DateTime
、またはDateTime + TimeSpan
、またはDateTime - TimeSpan
。
一般的にDateTimes
同じものと比較する必要がありますKind
:
if (date1.ToUniversalTime() < date2.ToUniversalTime())
Console.WriteLine("date1 is earlier than date2");
説明MSDN程度DateTime.Compare
(これは、事業者が好きにも関連して>
、<
、==
およびなど):
t1とt2の関係を判断するために、Compareメソッドはt1とt2のTicksプロパティを比較しますが、Kindプロパティは無視します。DateTimeオブジェクトを比較する前に、オブジェクトが同じタイムゾーンの時間を表していることを確認してください。
したがって、単純な比較ではDateTimes
、異なるタイムゾーンで表されているものを処理するときに予期しない結果が生じる可能性があります。
同じように見える2つのDateTimeがあるが、CompareまたはEqualsが期待した結果を返さない場合、これがそれらを比較する方法です。
以下は1ミリ秒の精度の例です。
bool areSame = (date1 - date2) > TimeSpan.FromMilliseconds(1d);
//Time compare.
private int CompareTime(string t1, string t2)
{
TimeSpan s1 = TimeSpan.Parse(t1);
TimeSpan s2 = TimeSpan.Parse(t2);
return s2.CompareTo(s1);
}
DateTime
ないstring
Unity環境での典型的な簡単な例を示します
using UnityEngine;
public class Launch : MonoBehaviour
{
void Start()
{
Debug.Log("today " + System.DateTime.Now.ToString("MM/dd/yyyy"));
// don't allow the app to be run after June 10th
System.DateTime lastDay = new System.DateTime(2020, 6, 10);
System.DateTime today = System.DateTime.Now;
if (lastDay < today) {
Debug.Log("quit the app");
Application.Quit();
}
UnityEngine.SceneManagement.SceneManager.LoadScene("Welcome");
}
}
public static bool CompareDateTimes(this DateTime firstDate, DateTime secondDate)
{
return firstDate.Day == secondDate.Day && firstDate.Month == secondDate.Month && firstDate.Year == secondDate.Year;
}