사용자가 이전 날짜 또는 시간을 제공하고 싶지 않습니다.
입력 한 날짜와 시간이 현재 시간보다 적은지 어떻게 비교할 수 있습니까?
현재 날짜와 시간이 2010 년 6 월 17 일 오후 12시 25 분이면 사용자는 2010 년 6 월 17 일 이전과 오후 12시 25 분 이전의 날짜를 사용자에게 줄 수 없습니다.
사용자가 입력 한 시간이 2010 년 6 월 16 일이고 오후 12시 24 분이면 내 함수가 false를 반환하는 것처럼
답변
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!");
답변
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
.
답변
일반적으로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);
}
답변
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");
}
}