📜  C#中的DateTime.Add()方法

📅  最后修改于: 2021-05-29 13:51:22             🧑  作者: Mango

此方法用于返回一个新的DateTime,它将指定的TimeSpan的值添加到此实例的值。

句法:

public DateTime Add (TimeSpan value);

在此,是正或负的时间间隔。

返回值:该方法返回一个对象,该对象的值是此实例表示的日期和时间与value表示的时间间隔之和。

例外:如果生成的DateTime小于MinValue或大于MaxValue,则此方法将提供ArgumentOutOfRangeException

下面的程序说明了DateTime.Add(TimeSpan)方法的用法:

范例1:

// C# program to demonstrate the
// DateTime.Add(TimeSpan) Method
using System;
using System.Globalization;
  
class GFG {
  
    // Main Method
    public static void Main()
    {
        try {
            // creating object of DateTime
            DateTime date1 = new DateTime(2010, 1, 1,
                                           8, 0, 15);
  
            // creating object of TimeSpan
            TimeSpan duration = new TimeSpan(36, 0, 0, 0);
  
            // adding the TimeSpan of 36 days
            // using Add() method;
            DateTime date2 = date1.Add(duration);
  
            // Display the date1
            System.Console.WriteLine("DateTime before "+
                      "operation: {0:y} {0:dd}", date1);
  
            // Display the date2
            System.Console.WriteLine("\nDateTime after"+
                     " operation: {0:y} {0:dd}", date2);
        }
  
        catch (ArgumentOutOfRangeException e) 
        {
            Console.Write("Exception Thrown: ");
            Console.Write("{0}", e.GetType(), e.Message);
        }
    }
}
输出:
DateTime before operation: 2010 January 01

DateTime after operation: 2010 February 06

示例2:对于ArgumentOutOfRangeException

// C# program to demonstrate the
// DateTime.Add(TimeSpan) Method
using System;
using System.Globalization;
  
class GFG {
  
    // Main Method
    public static void Main()
    {
        try {
  
            // creating object of DateTime 
            // and initialize with MinValue
            DateTime date1 = DateTime.MinValue;
  
            // Display the date1
            Console.WriteLine("DateTime before "+
               "operation: {0:y} {0:dd}", date1);
  
            // creating object of TimeSpan
            TimeSpan duration = new TimeSpan(-36, 0, 0, 0);
  
            // adding the TimeSpan of 36 days
            // using Add() method;
            DateTime date2 = date1.Add(duration);
  
            // Display the date2
            Console.WriteLine("\nDateTime after"+
              " operation: {0:y} {0:dd}", date2);
        }
  
        catch (ArgumentOutOfRangeException e)
       {
            Console.WriteLine("\nThe resulting DateTime"+
                          " is less than the MinValue ");
            Console.Write("Exception Thrown: ");
            Console.Write("{0}", e.GetType(), e.Message);
        }
    }
}
输出:
DateTime before operation: 0001 January 01

The resulting DateTime is less than the MinValue 
Exception Thrown: System.ArgumentOutOfRangeException

笔记:

  • 执行日期算术时,Add方法考虑leap年和一个月中的天数。
  • 此方法不会更改此DateTime的值。而是返回一个新的DateTime,其值是此操作的结果。

参考:

  • https://docs.microsoft.com/zh-cn/dotnet/api/system.datetime.add?view=netframework-4.7.2