답변:
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는 '<'및 '>'연산자도 구현했습니다. 따라서이 두 날짜를 비교하는 데 사용합니다.
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
.
+
두 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
다른 시간대로 표시되는 처리시 예기치 않은 결과를 제공 할 수 있습니다 .
두 개의 DateTime이 동일하게 보이지만 비교 또는 같음이 예상 한 결과를 반환하지 않는 경우이를 비교하는 방법입니다.
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;
}