DateTime.CompareToとは? わかりやすく解説

DateTime.CompareTo メソッド (DateTime)

メモ : このメソッドは、.NET Framework version 2.0 で新しく追加されたものです。

指定した DateTime オブジェクトとこのインスタンスを比較し、これらの相対値を示す値を返します。

名前空間: System
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

解説解説
使用例使用例

いくつかの値型および参照型について、ジェネリック バージョンと非ジェネリック バージョンの CompareTo メソッドのコード例を次に示します。

' This example demonstrates the generic and non-generic versions of
 the 
' CompareTo method for several base types.
' The non-generic version takes a parameter of type Object, while the
 generic
' version takes a type-specific parameter, such as Boolean, Int32, or
 Double.

Imports System

Class Sample
   Public Shared Sub Main()
      Dim nl As String =
 Environment.NewLine
      Dim msg As String
 = _
          "{0}The following is the result of using the generic
 and non-generic{0}" & _
          "versions of the CompareTo method for several base types:{0}"
      
      Dim now As DateTime = DateTime.Now
      ' Time span = 11 days, 22 hours, 33 minutes, 44 seconds
      Dim tsX As New TimeSpan(11,
 22, 33, 44)
      ' Version = 1.2.333.4
      Dim versX As New Version("1.2.333.4")
      ' Guid = CA761232-ED42-11CE-BACD-00AA0057B223
      Dim guidX As New Guid("{CA761232-ED42-11CE-BACD-00AA0057B223}")
      
      Dim a1 As [Boolean] = True,
    a2 As [Boolean] = True
      Dim b1 As [Byte] = 1,          b2 As
 [Byte] = 1
      Dim c1 As Int16 = -2,          c2 As
 Int16 = 2
      Dim d1 As Int32 = 3,           d2 As
 Int32 = 3
      Dim e1 As Int64 = 4,           e2 As
 Int64 = -4
      Dim f1 As [Decimal] = -5.5D,   f2 As
 [Decimal] = 5.5D
      Dim g1 As [Single] = 6.6F,     g2 As
 [Single] = 6.6F
      Dim h1 As [Double] = 7.7,      h2 As
 [Double] = -7.7
      Dim i1 As [Char] = "A"c,
       i2 As [Char] = "A"c
      Dim j1 As String =
 "abc",      j2 As String
 = "abc"
      Dim k1 As DateTime = now,      k2 As
 DateTime = now
      Dim l1 As TimeSpan = tsX,      l2 As
 TimeSpan = tsX
      Dim m1 As Version = versX,     m2 As
 New Version("2.0")
      Dim n1 As Guid = guidX,        n2 As
 Guid = guidX
      
      ' The following types are not CLS-compliant.
      ' SByte, UInt16, UInt32, UInt64

      Console.WriteLine(msg, nl)
      Try
         ' The second and third Show method call parameters are automatically
 boxed because
         ' the second and third Show method declaration arguments expect
 type Object.

         Show("Boolean:  ", a1, a2, a1.CompareTo(a2),
 a1.CompareTo(CObj(a2)))
         Show("Byte:     ", b1, b2, b1.CompareTo(b2),
 b1.CompareTo(CObj(b2)))
         Show("Int16:    ", c1, c2, c1.CompareTo(c2),
 c1.CompareTo(CObj(c2)))
         Show("Int32:    ", d1, d2, d1.CompareTo(d2),
 d1.CompareTo(CObj(d2)))
         Show("Int64:    ", e1, e2, e1.CompareTo(e2),
 e1.CompareTo(CObj(e2)))
         Show("Decimal:  ", f1, f2, f1.CompareTo(f2),
 f1.CompareTo(CObj(f2)))
         Show("Single:   ", g1, g2, g1.CompareTo(g2),
 g1.CompareTo(CObj(g2)))
         Show("Double:   ", h1, h2, h1.CompareTo(h2),
 h1.CompareTo(CObj(h2)))
         Show("Char:     ", i1, i2, i1.CompareTo(i2),
 i1.CompareTo(CObj(i2)))
         Show("String:   ", j1, j2, j1.CompareTo(j2),
 j1.CompareTo(CObj(j2)))
         Show("DateTime: ", k1, k2, k1.CompareTo(k2),
 k1.CompareTo(CObj(k2)))
         Show("TimeSpan: ", l1, l2, l1.CompareTo(l2),
 l1.CompareTo(CObj(l2)))
         Show("Version:  ", m1, m2, m1.CompareTo(m2),
 m1.CompareTo(CObj(m2)))
         Show("Guid:     ", n1, n2, n1.CompareTo(n2),
 n1.CompareTo(CObj(n2)))
         '
         Console.WriteLine("{0}The following types are not CLS-compliant:",
 nl)
         Console.WriteLine("SByte, UInt16, UInt32, UInt64")

      Catch e As Exception
         Console.WriteLine(e)
      End Try
   End Sub 'Main
   
   Public Shared Sub Show(caption
 As String, var1 As [Object],
 var2 As [Object], _
                          resultGeneric As Integer,
 resultNonGeneric As Integer)
      Dim relation As String
      
      Console.Write(caption)
      If resultGeneric = resultNonGeneric Then
         If resultGeneric < 0 Then
            relation = "less than"
         ElseIf resultGeneric > 0 Then
            relation = "greater than"
         Else
            relation = "equal to"
         End If
         Console.WriteLine("{0} is {1} {2}", var1,
 relation, var2)
      
      ' The following condition will never occur because the generic
 and non-generic
      ' CompareTo methods are equivalent.

      Else
         Console.WriteLine("Generic CompareTo = {0}; non-generic
 CompareTo = {1}", _
                            resultGeneric, resultNonGeneric)
      End If
   End Sub 'Show
End Class 'Sample
'
'This example produces the following results:
'
'The following is the result of using the generic and non-generic versions
 of the
'CompareTo method for several base types:
'
'Boolean:  True is equal to True
'Byte:     1 is equal to 1
'Int16:    -2 is less than 2
'Int32:    3 is equal to 3
'Int64:    4 is greater than -4
'Decimal:  -5.5 is less than 5.5
'Single:   6.6 is equal to 6.6
'Double:   7.7 is greater than -7.7
'Char:     A is equal to A
'String:   abc is equal to abc
'DateTime: 12/1/2003 5:37:46 PM is equal to 12/1/2003 5:37:46 PM
'TimeSpan: 11.22:33:44 is equal to 11.22:33:44
'Version:  1.2.333.4 is less than 2.0
'Guid:     ca761232-ed42-11ce-bacd-00aa0057b223 is equal to ca761232-ed42-11ce-bacd-00
'aa0057b223
'
'The following types are not CLS-compliant:
'SByte, UInt16, UInt32, UInt64
'
// This example demonstrates the generic and non-generic versions of
 the 
// CompareTo method for several base types.
// The non-generic version takes a parameter of type Object, while the
 generic
// version takes a type-specific parameter, such as Boolean, Int32,
 or Double.

using System;

class Sample 
{
    public static void Main()
 
    {
    string    nl = Environment.NewLine;
    string    msg = "{0}The following is the result of using
 the generic and non-generic{0}" +
                    "versions of the CompareTo method for
 several base types:{0}";

    DateTime  now = DateTime.Now;
// Time span = 11 days, 22 hours, 33 minutes, 44 seconds
    TimeSpan  tsX = new TimeSpan(11, 22, 33, 44); 
// Version = 1.2.333.4
    Version   versX = new Version("1.2.333.4");  
// Guid = CA761232-ED42-11CE-BACD-00AA0057B223
    Guid      guidX = new Guid("{CA761232-ED42-11CE-BACD-00AA0057B223}");

    Boolean  a1 = true,  a2 = true;
    Byte     b1 = 1,     b2 = 1;
    Int16    c1 = -2,    c2 = 2;
    Int32    d1 = 3,     d2 = 3;
    Int64    e1 = 4,     e2 = -4;
    Decimal  f1 = -5.5m, f2 = 5.5m;
    Single   g1 = 6.6f,  g2 = 6.6f;
    Double   h1 = 7.7d,  h2 = -7.7d;
    Char     i1 = 'A',   i2 = 'A';
    String   j1 = "abc", j2 = "abc";
    DateTime k1 = now,   k2 = now;
    TimeSpan l1 = tsX,   l2 = tsX;
    Version  m1 = versX, m2 = new Version("2.0");
    Guid     n1 = guidX, n2 = guidX;

// The following types are not CLS-compliant.
    SByte    w1 = 8,     w2 = 8;
    UInt16   x1 = 9,     x2 = 9;
    UInt32   y1 = 10,    y2 = 10;
    UInt64   z1 = 11,    z2 = 11;
//
    Console.WriteLine(msg, nl);
    try 
        {
// The second and third Show method call parameters are automatically
 boxed because
// the second and third Show method declaration arguments expect type
 Object.

        Show("Boolean:  ", a1, a2, a1.CompareTo(a2), a1.CompareTo((Object)a2));
        Show("Byte:     ", b1, b2, b1.CompareTo(b2), b1.CompareTo((Object)b2));
        Show("Int16:    ", c1, c2, c1.CompareTo(c2), c1.CompareTo((Object)c2));
        Show("Int32:    ", d1, d2, d1.CompareTo(d2), d1.CompareTo((Object)d2));
        Show("Int64:    ", e1, e2, e1.CompareTo(e2), e1.CompareTo((Object)e2));
        Show("Decimal:  ", f1, f2, f1.CompareTo(f2), f1.CompareTo((Object)f2));
        Show("Single:   ", g1, g2, g1.CompareTo(g2), g1.CompareTo((Object)g2));
        Show("Double:   ", h1, h2, h1.CompareTo(h2), h1.CompareTo((Object)h2));
        Show("Char:     ", i1, i2, i1.CompareTo(i2), i1.CompareTo((Object)i2));
        Show("String:   ", j1, j2, j1.CompareTo(j2), j1.CompareTo((Object)j2));
        Show("DateTime: ", k1, k2, k1.CompareTo(k2), k1.CompareTo((Object)k2));
        Show("TimeSpan: ", l1, l2, l1.CompareTo(l2), l1.CompareTo((Object)l2));
        Show("Version:  ", m1, m2, m1.CompareTo(m2), m1.CompareTo((Object)m2));
        Show("Guid:     ", n1, n2, n1.CompareTo(n2), n1.CompareTo((Object)n2));
//
        Console.WriteLine("{0}The following types are not CLS-compliant:",
 nl);
        Show("SByte:    ", w1, w2, w1.CompareTo(w2), w1.CompareTo((Object)w2));
        Show("UInt16:   ", x1, x2, x1.CompareTo(x2), x1.CompareTo((Object)x2));
        Show("UInt32:   ", y1, y2, y1.CompareTo(y2), y1.CompareTo((Object)y2));
        Show("UInt64:   ", z1, z2, z1.CompareTo(z2), z1.CompareTo((Object)z2));
        }
    catch (Exception e)
        {
        Console.WriteLine(e);
        }
    }

    public static void Show(string
 caption, Object var1, Object var2, 
                            int resultGeneric, int
 resultNonGeneric)
    {
    string relation;

    Console.Write(caption);
    if (resultGeneric == resultNonGeneric) 
        {
        if      (resultGeneric < 0) relation = "less than";
        else if (resultGeneric > 0) relation
 = "greater than";
        else                        relation = "equal to";
        Console.WriteLine("{0} is {1} {2}", var1, relation, var2);
        }

// The following condition will never occur because the generic and
 non-generic
// CompareTo methods are equivalent.

    else
        {
        Console.WriteLine("Generic CompareTo = {0}; non-generic CompareTo =
 {1}", 
                           resultGeneric, resultNonGeneric);
        }
   }
}
/*
This example produces the following results:

The following is the result of using the generic and non-generic
 versions of the
CompareTo method for several base types:

Boolean:  True is equal to True
Byte:     1 is equal to 1
Int16:    -2 is less than 2
Int32:    3 is equal to 3
Int64:    4 is greater than -4
Decimal:  -5.5 is less than 5.5
Single:   6.6 is equal to 6.6
Double:   7.7 is greater than -7.7
Char:     A is equal to A
String:   abc is equal to abc
DateTime: 12/1/2003 5:37:46 PM is equal to 12/1/2003 5:37:46 PM
TimeSpan: 11.22:33:44 is equal to 11.22:33:44
Version:  1.2.333.4 is less than 2.0
Guid:     ca761232-ed42-11ce-bacd-00aa0057b223 is equal to ca761232-ed42-11ce-bacd-00
aa0057b223

The following types are not CLS-compliant:
SByte:    8 is equal to 8
UInt16:   9 is equal to 9
UInt32:   10 is equal to 10
UInt64:   11 is equal to 11
*/
// CompareTo method for several base types.
// The non-generic version takes a parameter of type Object, while the
 generic
// version takes a type-specific parameter, such as Boolean, Int32,
 or Double.
using namespace System;
void Show( String^ caption, Object^ var1, Object^ var2, int
 resultGeneric, int resultNonGeneric )
{
   String^ relation;
   Console::Write( caption );
   if ( resultGeneric == resultNonGeneric )
   {
      if ( resultGeneric < 0 )
            relation = "less than";
      else
      if ( resultGeneric > 0 )
            relation = "greater than";
      else
            relation = "equal to";
      Console::WriteLine( "{0} is {1} {2}", var1, relation, var2 );
   }
   // The following condition will never occur because the generic and
 non-generic
   // CompareTo methods are equivalent.
   else
   {
      Console::WriteLine( "Generic CompareTo = {0}; non-generic CompareTo =
 {1}", resultGeneric, resultNonGeneric );
   }
}

int main()
{
   String^ nl = Environment::NewLine;
   String^ msg = "{0}The following is the result of using
 the generic and non-generic{0}"
   "versions of the CompareTo method for several base
 types:{0}";
   Object^ obj; // An Object used to insure CompareTo(Object) is called.

   DateTime now = DateTime::Now;
   
   // Time span = 11 days, 22 hours, 33 minutes, 44 seconds
   TimeSpan tsX = TimeSpan(11,22,33,44);
   
   // Version = 1.2.333.4
   Version^ versX = gcnew Version(  "1.2.333.4" );
   
   // Guid = CA761232-ED42-11CE-BACD-00AA0057B223
   Guid guidX = Guid( "{CA761232-ED42-11CE-BACD-00AA0057B223}");
   Boolean a1 = true,a2 = true;
   Byte b1 = 1,b2 = 1;
   Int16 c1 = -2,c2 = 2;
   Int32 d1 = 3,d2 = 3;
   Int64 e1 = 4,e2 = -4;
   Decimal f1 = Decimal(-5.5), f2 = Decimal(5.5);
   Single g1 = 6.6f,g2 = 6.6f;
   Double h1 = 7.7,h2 = -7.7;
   Char i1 = 'A',i2 = 'A';
   String^ j1 = "abc", ^j2 = "abc";
   DateTime k1 = now,k2 = now;
   TimeSpan l1 = tsX,l2 = tsX;
   Version^ m1 = versX, ^m2 = gcnew Version(  "2.0" );
   Guid n1 = guidX,n2 = guidX;
   
   // The following types are not CLS-compliant.
   SByte w1 = 8,w2 = 8;
   UInt16 x1 = 9,x2 = 9;
   UInt32 y1 = 10,y2 = 10;
   UInt64 z1 = 11,z2 = 11;
   
   //
   Console::WriteLine( msg, nl );
   try
   {
      Show( "Boolean: ", a1, a2, a1.CompareTo( a2 ), a1.CompareTo( a2 )
 );
      Show( "Byte:    ", b1, b2, b1.CompareTo( b2 ), b1.CompareTo( b2 )
 );
      Show( "Int16:   ", c1, c2, c1.CompareTo( c2 ), c1.CompareTo( c2 )
 );
      Show( "Int32:   ", d1, d2, d1.CompareTo( d2 ), d1.CompareTo( d2 )
 );
      Show( "Int64:   ", e1, e2, e1.CompareTo( e2 ), e1.CompareTo( e2 )
 );
      Show( "Decimal: ", f1, f2, f1.CompareTo( f2 ), f1.CompareTo( f2 )
 );
      Show( "Single:  ", g1, g2, g1.CompareTo( g2 ), g1.CompareTo( g2 )
 );
      Show( "Double:  ", h1, h2, h1.CompareTo( h2 ), h1.CompareTo( h2 )
 );
      Show( "Char:    ", i1, i2, i1.CompareTo( i2 ), i1.CompareTo( i2 )
 );
      
      // Use an anonymous object to hide the String object.
      obj = j2;
      Show( "String:  ", j1, j2, j1->CompareTo( j2 ), j1->CompareTo(
 obj ) );
      Show( "DateTime:", k1, k2, k1.CompareTo( k2 ), k1.CompareTo( k2 )
 );
      Show(  "TimeSpan: ", l1, l2, l1.CompareTo( l2 ), l1.CompareTo( l2
 ) );
      
      // Use an anonymous object to hide the Version object.
      obj = m2;
      Show(  "Version:  ", m1, m2, m1->CompareTo( m2 ), m1->CompareTo(
 obj ) );
      Show(  "Guid:     ", n1, n2, n1.CompareTo( n2 ), n1.CompareTo( n2
 ) );
      
      //
      Console::WriteLine( "{0}The following types are not CLS-compliant:",
 nl );
      Show( "SByte:   ", w1, w2, w1.CompareTo( w2 ), w1.CompareTo( w2 )
 );
      Show( "UInt16:  ", x1, x2, x1.CompareTo( x2 ), x1.CompareTo( x2 )
 );
      Show( "UInt32:  ", y1, y2, y1.CompareTo( y2 ), y1.CompareTo( y2 )
 );
      Show( "UInt64:  ", z1, z2, z1.CompareTo( z2 ), z1.CompareTo( z2 )
 );
   }
   catch ( Exception^ e ) 
   {
      Console::WriteLine( e );
   }

}

/*
This example produces the following results:

The following is the result of using the generic and non-generic
 versions of the
CompareTo method for several base types:

Boolean:  True is equal to True
Byte:     1 is equal to 1
Int16:    -2 is less than 2
Int32:    3 is equal to 3
Int64:    4 is greater than -4
Decimal:  -5.5 is less than 5.5
Single:   6.6 is equal to 6.6
Double:   7.7 is greater than -7.7
Char:     A is equal to A
String:   abc is equal to abc
DateTime: 12/1/2003 5:37:46 PM is equal to 12/1/2003 5:37:46 PM
TimeSpan: 11.22:33:44 is equal to 11.22:33:44
Version:  1.2.333.4 is less than 2.0
Guid:     ca761232-ed42-11ce-bacd-00aa0057b223 is equal to ca761232-ed42-11ce-bacd-00
aa0057b223

The following types are not CLS-compliant:
SByte:    8 is equal to 8
UInt16:   9 is equal to 9
UInt32:   10 is equal to 10
UInt64:   11 is equal to 11
*/
// This example demonstrates the generic and non-generic versions of
 the 
// CompareTo method for several base types.
// The non-generic version takes a parameter of type Object, while the
 generic
// version takes a type-specific parameter, such as Boolean, Int32,
 or Double.

import System.*;

class Sample
{
    public static void main(String[]
 args)
    {
        String nl = Environment.get_NewLine();
        String msg = "{0}The following is the result of using
 the generic and"
            +" non-generic{0}versions of the CompareTo method for"
            +" several base types:{0}";

        DateTime now = DateTime.get_Now();

        // Time span = 11 days, 22 hours, 33 minutes, 44 seconds
        TimeSpan tsX = new TimeSpan(11, 22, 33, 44);

        // Version = 1.2.333.4
        Version versX = new Version("1.2.333.4");

        // Guid = CA761232-ED42-11CE-BACD-00AA0057B223
        Guid guidX = new Guid("{CA761232-ED42-11CE-BACD-00AA0057B223}");

        System.Boolean a1 = true,a2 = true;
        System.Byte b1 = (System.Byte)1,b2 =(System.Byte)1;
        Int16 c1 = (System.Int16)(-2),c2 = (System.Int16)2;
        Int32 d1 = (System.Int32)3,d2 = (System.Int32)3;
        Int64 e1 = (System.Int64)4,e2 = (System.Int64)(-4);
        Decimal f1 = new Decimal(-5.5),f2 = new
 Decimal(5.5);
        Single g1 = (System.Single)6.6,g2 = (System.Single)6.6;
        System.Double h1 = (System.Double)7.7,h2 = (System.Double)(-7.7);
        System.Char i1 = (System.Char)'A',i2 = (System.Char)'A';;
        String j1 = "abc", j2 = "abc";
        DateTime k1 = now, k2 = now;
        TimeSpan l1 = tsX, l2 = tsX;
        Version m1 = versX, m2 = new Version("2.0");
        Guid n1 = guidX, n2 = guidX;

        // The following types are not CLS-compliant.
        SByte w1 = (System.SByte)8,w2 = (System.SByte)8;
        UInt16 x1 = (System.UInt16)9,x2 = (System.UInt16)9;
        UInt32 y1 = (System.UInt32)10,y2 = (System.UInt32)10;
        UInt64 z1 = (System.UInt64)11,z2 = (System.UInt64)11;
        //
        Console.WriteLine(msg, nl);
        try {
            // The second and third Show method call parameters are
            // automatically boxed because the second and third Show
 method
            // declaration arguments expect type Object.
            Show("Boolean:  ", a1, a2, a1.CompareTo(a2),
                a1.CompareTo((Object)a2));
            Show("Byte:     ", b1, b2, b1.CompareTo(b2),
                b1.CompareTo((Object)b2));
            Show("Int16:    ", c1, c2, c1.CompareTo(c2), 
                c1.CompareTo((Object)c2));
            Show("Int32:    ", d1, d2, d1.CompareTo(d2),
                d1.CompareTo((Object)d2));
            Show("Int64:    ", e1, e2, e1.CompareTo(e2),
                e1.CompareTo(((Object)e2)));
            Show("Decimal:  ", f1, f2, f1.CompareTo(f2),
                f1.CompareTo((Object)f2));
            Show("Single:   ", g1, g2, g1.CompareTo(g2),
                g1.CompareTo((Object)g2));
            Show("Double:   ", h1, h2, h1.CompareTo(h2),
                h1.CompareTo((Object)h2));
            Show("Char:     ", i1, i2, i1.CompareTo(i2), 
                i1.CompareTo(((Object)i2)));
            Show("String:   ", j1, j2, j1.CompareTo(j2),
                j1.CompareTo((Object)j2));
            Show("DateTime: ", k1, k2, k1.CompareTo(k2),
                k1.CompareTo((Object)(k2)));
            Show("TimeSpan: ", l1, l2, l1.CompareTo(l2),
                l1.CompareTo((Object)l2));
            Show("Version:  ", m1, m2, m1.CompareTo(m2), 
                m1.CompareTo((Object)m2));
            Show("Guid:     ", n1, n2, n1.CompareTo(n2), 
                n1.CompareTo((Object)n2));
            //
            Console.WriteLine(
                "{0}The following types are not CLS-compliant:", nl);
            Show("SByte:    ", w1, w2, w1.CompareTo(w2),
                w1.CompareTo((Object)w2));
            Show("UInt16:   ", x1, x2, x1.CompareTo(x2), 
                x1.CompareTo((Object)x2));
            Show("UInt32:   ", y1, y2, y1.CompareTo(y2),
                y1.CompareTo((Object)y2));
            Show("UInt64:   ", z1, z2, z1.CompareTo(z2),
                z1.CompareTo((Object)z2));
        }
        catch (System.Exception e) {
            Console.WriteLine(e);
        }
    } //main

    public static void Show(String
 caption, Object var1, Object var2,
        int resultGeneric, int resultNonGeneric)
    {
        String relation;

        Console.Write(caption);
        if (resultGeneric == resultNonGeneric) {
            if (resultGeneric < 0) {
                relation = "less than";
            }
            else {
                if (resultGeneric > 0) {
                    relation = "greater than";
                }
                else {
                    relation = "equal to";
                }
            }
            Console.WriteLine("{0} is {1} {2}", var1, relation, var2);
        }
        // The following condition will never occur because the generic
 and 
        // non-generic CompareTo methods are equivalent.
        else {
            Console.WriteLine("Generic CompareTo = {0};"
                +" non-generic CompareTo = {1}",
                System.Convert.ToString(resultGeneric),
                System.Convert.ToString(resultNonGeneric));
        }
    } //Show
} //Sample
/*
This example produces the following results:

The following is the result of using the generic and non-generic
 versions of the
CompareTo method for several base types:

Boolean:  True is equal to True
Byte:     1 is equal to 1
Int16:    -2 is less than 2
Int32:    3 is equal to 3
Int64:    4 is greater than -4
Decimal:  -5.5 is less than 5.5
Single:   6.6 is equal to 6.6
Double:   7.7 is greater than -7.7
Char:     A is equal to A
String:   abc is equal to abc
DateTime: 12/1/2003 5:37:46 PM is equal to 12/1/2003 5:37:46 PM
TimeSpan: 11.22:33:44 is equal to 11.22:33:44
Version:  1.2.333.4 is less than 2.0
Guid:     ca761232-ed42-11ce-bacd-00aa0057b223 is equal to ca761232-ed42
-11ce-bacd-00aa0057b223

The following types are not CLS-compliant:
SByte:    8 is equal to 8
UInt16:   9 is equal to 9
UInt32:   10 is equal to 10
UInt64:   11 is equal to 11
*/
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

DateTime.CompareTo メソッド


DateTime.CompareTo メソッド (Object)

指定したオブジェクトとこのインスタンスを比較し、これらの相対値を示す値を返します。

名前空間: System
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

例外例外
例外の種類条件

ArgumentException

value が DateTime ではありません。

解説解説

DateTime オブジェクト間の比較を行う場合は、あらかじめ両方のオブジェクトが同じタイム ゾーンの時刻を表すことを確認してください。

DateTime のすべてのインスタンスは、その値に関係なく、null 参照 (Visual Basic では Nothing) より大きいと見なされます。

使用例使用例

CompareTo メソッドのコード例を次に示します。

Dim thDay As New System.DateTime(System.DateTime.Today.Year,
 7, 28)

Dim compareValue As Integer
Try
   compareValue = thDay.CompareTo(System.DateTime.Today)
Catch exp As ArgumentException
   System.Console.WriteLine("Value is not a DateTime")
End Try

If compareValue < 0 Then
   System.Console.WriteLine("{0:d} is in the past.",
 thDay)
ElseIf compareValue = 0 Then
   System.Console.WriteLine("{0:d} is today!", thDay)
ElseIf compareValue = 1 Then
   System.Console.WriteLine("Value is null")
Else ' compareValue > 0 && compareValue
 != 1
   System.Console.WriteLine("{0:d} has not come yet.",
 thDay)
End If
System.DateTime theDay = 
          new System.DateTime(System.DateTime.Today.Year, 7, 28);

int compareValue;
try {
    compareValue = theDay.CompareTo(System.DateTime.Today);
} 
catch (ArgumentException) {
    System.Console.WriteLine("Value is not a DateTime");
    return;
}

if (compareValue < 0) {
    System.Console.WriteLine("{0:d} is in the past.",
 theDay);
} 
else if (compareValue == 0) {
    System.Console.WriteLine("{0:d} is today!", theDay);
}
else if (compareValue == 1) {
    System.Console.WriteLine("Value is null");
}
// compareValue > 0 && compareValue != 1
else { 
    System.Console.WriteLine("{0:d} has not come yet.", theDay);
}
   System::DateTime theDay(System::DateTime::Today.Year,7,28);
   int compareValue;
   try
   {
      compareValue = theDay.CompareTo( System::DateTime::Today );
   }
   catch ( ArgumentException^ ) 
   {
      System::Console::WriteLine( "Value is not a DateTime" );
      return;
   }

   if ( compareValue < 0 )
   {
      System::Console::WriteLine( "{0:d} is in the past.",
 theDay );
   }
   else
   if ( compareValue == 0 )
   {
      System::Console::WriteLine( "{0:d} is today!", theDay );
   }
   else
   if ( compareValue == 1 )
   {
      System::Console::WriteLine( "Value is 0" );
   }
   // compareValue > 0 && compareValue != 1
   else
   {
      System::Console::WriteLine( "{0:d} has not come yet.", theDay );
   }
}

System.DateTime theDay = new System.DateTime(System.DateTime.
    get_Today().get_Year(), 7, 28);
int compareValue;
try {
    compareValue = theDay.CompareTo(System.DateTime.get_Today());
}
catch (ArgumentException exp) {
    System.Console.WriteLine("Value is not a DateTime");
    return;
}
if (compareValue < 0) {
    System.Console.WriteLine("{0:d} is in the past.",
 theDay);
}
else {
    if (compareValue == 0) {
        System.Console.WriteLine("{0:d} is today!", theDay);
    }
    else {
        if (compareValue == 1) {
            System.Console.WriteLine("Value is null");
        }
        // compareValue > 0 && compareValue != 1
        else {
            System.Console.WriteLine("{0:d} has not come yet.", 
                theDay);
        }
    } 
}
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照



英和和英テキスト翻訳

英語⇒日本語日本語⇒英語

辞書ショートカット

すべての辞書の索引

「DateTime.CompareTo」の関連用語

DateTime.CompareToのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



DateTime.CompareToのページの著作権

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2026 Microsoft.All rights reserved.

©2026 GRAS Group, Inc.RSS