当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


C# DateTime.AddYears()用法及代码示例


此方法用于返回新的DateTime,该日期将指定的年数添加到此实例的值中。

用法:

public DateTime AddYears (int value);

在这里,值是年数。值参数可以为负或正。


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

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

以下示例程序旨在说明DateTime.AddYears(Int32)方法的用法:

示例1:

// C# program to demonstrate the 
// DateTime.AddYears(Int32) 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, 
                                        4, 0, 15); 
                                          
        // adding the 8 Months 
        // using AddYears() method; 
        DateTime date2 = date1.AddYears(8); 
          
        // Display the date1 
        Console.WriteLine("DateTime before operation: "
                              + "{0:y} {0:dd}", date1);                              
                                
        // Display the date2 
        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: 2018 January 01

示例2:对于ArgumentOutOfRangeException

// C# program to demonstrate the 
// DateTime.AddYears(Int32) 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.MaxValue; 
  
            // Display the date1 
            Console.WriteLine("DateTime before operation: "
                                  + "{0:y} {0:dd}", date1); 
                                       
  
            // adding the TimeSpan of 8 Years 
            // using AddYears() method; 
            DateTime date2 = date1.AddYears(5); 
  
            // Display the date2 
            Console.WriteLine("DateTime before operation: "
                                  + "{0:y} {0:dd}", date2); 
                                       
        } 
  
        catch (ArgumentOutOfRangeException e)  
        { 
            Console.WriteLine("\nThe resulting DateTime is "+ 
                      "greater than the DateTime.MaxValue "); 
  
            Console.Write("Exception Thrown: "); 
            Console.Write("{0}", e.GetType(), e.Message); 
        } 
    } 
}
输出:
DateTime before operation: 9999 December 31

The resulting DateTime is greater than the DateTime.MaxValue 
Exception Thrown: System.ArgumentOutOfRangeException

注意:

  • 此方法不会更改此DateTime对象的值。而是返回一个新的DateTime对象,其值是此操作的结果。
  • 此方法在考虑leap年的情况下计算得出的年份。生成的DateTime对象的month和time-of-day部分与此实例保持相同。
  • 如果当前实例表示a年中的the日,则返回值取决于目标日期:
    • 如果value + DateTime.Year也是a年,则返回值表示该年的the日。例如,如果在2016年2月29日加上四年,则返回的日期是2020年2月29日。
    • 如果value + DateTime.Year不是a年,则返回值表示该年the日的前一天。例如,如果将一年添加到2016年2月29日,则返回的日期是2017年2月28日。

参考:



相关用法


注:本文由纯净天空筛选整理自RohitPrasad3大神的英文原创作品 DateTime.AddYears() Method in C#。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。