2010-05-19 17 views
5

में तुलना करें मैं दो दिनांक समय की तुलना करना चाहता हूं।डेटटाइम सी #

पूर्व:

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

उत्तर

11

इस प्रयास करें:

TimeSpan diff = date2.Subtract(date1); 
+0

क्या टाइमस्पेन हमेशा सकारात्मक है? तो: दिनांक 2.Subtract (date1) बराबर है: दिनांक 1.Subtract (date2) ??? – Michiel

+1

@ मिचिल, नहीं, परिणाम अलग होगा, एक सकारात्मक संख्या (+15 मिनट, +0.25 घंटे, +900000 टिक) है और दूसरा नकारात्मक है (-15 मिनट, -0.25 घंटे, -900000 टिक) – Artru

4

कैसे

के बारे में
if (date1 < date2) 
{ 
    // date1 is before date2 
} 
13

तुलना करने के लिए, तो आप बस < ऑपरेटर का उपयोग कर सकते हैं: date1 < date2

यदि आप किसी दिए गए प्रस्ताव के साथ तुलना करना चाहते हैं, तो date1.TotalMinutes == date2.TotalMinutes (यह एक ही मिनट के लिए तुलना की गई) का प्रयास करें।

आप अगर अंतर एक निश्चित समय अवधि के भीतर है जानना चाहते हैं, इस का उपयोग करें:

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

आप

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

उपयोग कर सकते हैं मिनट में कुल अंतर पाने के लिए।

1

मैं पूरी तरह से समझ नहीं पा रहा हूं कि आप क्या पूछ रहे हैं।

आप अपने छद्म कोड सी # ये रहा में व्यक्त करना चाहते हैं ...

 //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); 
1

कैसे के बारे में:

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

var x = date1.CompareTo(date2); 

संपादित करें: मैं अब देखते हैं कि आप प्राप्त करना चाहता था दो तिथियों के बीच का समय अंतर। इसके लिए आप टाइमस्पेन क्लास का उपयोग करते हैं।

0

अब यह सबसे अच्छा शर्त है।

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 
0

लैरी वॉल के शब्दों में ऐसा करने के एक से अधिक तरीके हैं। यदि आप एक निश्चित समय अंतराल के भीतर तुलना के -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; 
    } 
संबंधित मुद्दे