簡體   English   中英

c#中的日期時間比較

[英]DateTime Compare in c#

我想比較兩個dateTime。

例如:

  date1 = 13/01/2004 12:20:00
  date2 = 13/01/2004 12:35:00
  result = Compare(date2-date1);
  O/P : 15 Minutes

要進行比較,您只需使用< operator: date1 < date2

如果要與給定的分辨率進行比較,請嘗試date1.TotalMinutes == date2.TotalMinutes (比較同一分鍾)。

如果您想知道差異是否在特定時間范圍內,請使用以下命令:

System.TimeSpan dt = date2.Subtract(date1);
if (dt.TotalMinutes < 15) //...

試試這個:

TimeSpan diff = date2.Subtract(date1);

怎么樣

if (date1 < date2)
{
    // date1 is before date2
}

您可以使用

double minutes = d2.Subtract(d1).TotalMinutes;

以分鍾為單位獲得總差異。

我不完全明白你在問什么。

如果你想在C#中表達你的偽代碼,你就去...

        //date1 = 13/01/2004 12:20:00
        DateTime dateTime1 = new DateTime(2004, 01, 13, 12, 20, 0);
        //date2 = 13/01/2004 12:35:00 
        DateTime dateTime2 = new DateTime(2004, 01, 13, 12, 35, 0);

        //get the time difference - result = Compare(date2-date1); 
        TimeSpan result = dateTime2 - dateTime1;

        //output is 15
        Console.WriteLine(result.TotalMinutes);

怎么樣:

Timespan ts = date2 - date1;
Console.WriteLine("Value of Minutes = ", ts.Minutes);
DateTime date1 = DateTime.Now;
DateTime date2 = DateTime.Now;

var x = date1.CompareTo(date2);

編輯:我現在看到你想要得到兩個日期之間的時差。 為此,您使用TimeSpan類。

現在這是最好的選擇。

 using System;

public class Example
{
   public static void Main()
   {
      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

用Larry Wall的話說,有不止一種方法可以做到這一點。 如果您要查找特定時間間隔內比較的-1,0,+ 1結果,請嘗試以下變體之一;

   internal static int XDateCompare(DateTime date, DateTime other, int ticks)
    {
        var diff = date.Ticks - other.Ticks;

        var result = Math.Abs(diff) <= ticks ? 0
            : diff <= 0 ? -1
            : 1;

        Console.WriteLine("{0}\t{1}\t{2}\ts={3} milSec={4}", diff, other, result, ticks, date.Subtract(other).Duration().TotalMilliseconds);

        return result;
    }

    internal static int XDateCompare(DateTime date, DateTime other, double milliseconds)
    {
        double diff =
            date.Subtract(other)
            .TotalMilliseconds;

        var result = Math.Abs(diff) <= milliseconds ? 0
            : diff <= 0 ? -1
            : 1;

        Console.WriteLine("result {0} diff {1} vs ms {2}", result, diff, milliseconds);

        return result;
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM