TimeSpan.Add(TimeSpan) Method

Definition

Returns a new TimeSpan object whose value is the sum of the specified TimeSpan object and this instance.

public:
 TimeSpan Add(TimeSpan ts);
public TimeSpan Add (TimeSpan ts);
member this.Add : TimeSpan -> TimeSpan
Public Function Add (ts As TimeSpan) As TimeSpan

Parameters

ts
TimeSpan

The time interval to add.

Returns

A new object that represents the value of this instance plus the value of ts.

Exceptions

The resulting TimeSpan is less than TimeSpan.MinValue or greater than TimeSpan.MaxValue.

Examples

The following example calls the Add method to add each element in an array of time intervals to a base TimeSpan value.

TimeSpan baseTimeSpan = new TimeSpan(1, 12, 15, 16);

// Create an array of timespan intervals.
TimeSpan[] intervals = { 
   TimeSpan.FromDays(1.5), 
   TimeSpan.FromHours(1.5), 
   TimeSpan.FromMinutes(45), 
   TimeSpan.FromMilliseconds(505),
   new TimeSpan(1, 17, 32, 20), 
   new TimeSpan(-8, 30, 0) 
};

// Calculate a new time interval by adding each element to the base interval.
foreach (var interval in intervals)
   Console.WriteLine(@"{0,-10:g} {3} {1,15:%d\:hh\:mm\:ss\.ffff} = {2:%d\:hh\:mm\:ss\.ffff}", 
                     baseTimeSpan, interval, baseTimeSpan.Add(interval), 
                     interval < TimeSpan.Zero ? "-" : "+");

// The example displays the following output:
//       1:12:15:16 + 1:12:00:00.0000 = 3:00:15:16.0000
//       1:12:15:16 + 0:01:30:00.0000 = 1:13:45:16.0000
//       1:12:15:16 + 0:00:45:00.0000 = 1:13:00:16.0000
//       1:12:15:16 + 0:00:00:00.5050 = 1:12:15:16.5050
//       1:12:15:16 + 1:17:32:20.0000 = 3:05:47:36.0000
//       1:12:15:16 - 0:07:30:00.0000 = 1:04:45:16.0000
open System

let baseTimeSpan = TimeSpan(1, 12, 15, 16)

// Create a list of timespan intervals.
let intervals = 
    [ TimeSpan.FromDays 1.5 
      TimeSpan.FromHours 1.5 
      TimeSpan.FromMinutes 45
      TimeSpan.FromMilliseconds 505
      TimeSpan(1, 17, 32, 20) 
      TimeSpan(-8, 30, 0) ]

// Calculate a new time interval by adding each element to the base interval.
for interval in intervals do
   printfn $"""{baseTimeSpan,-10:g} {if interval < TimeSpan.Zero then "-" else "+"} {interval.ToString "%d\:hh\:mm\:ss\.ffff",15} = {baseTimeSpan.Add(interval).ToString "%d\:hh\:mm\:ss\.ffff"}""" 

// The example displays the following output:
//       1:12:15:16 + 1:12:00:00.0000 = 3:00:15:16.0000
//       1:12:15:16 + 0:01:30:00.0000 = 1:13:45:16.0000
//       1:12:15:16 + 0:00:45:00.0000 = 1:13:00:16.0000
//       1:12:15:16 + 0:00:00:00.5050 = 1:12:15:16.5050
//       1:12:15:16 + 1:17:32:20.0000 = 3:05:47:36.0000
//       1:12:15:16 - 0:07:30:00.0000 = 1:04:45:16.0000
Module Example
   Public Sub Main()
      Dim baseTimeSpan As New TimeSpan(1, 12, 15, 16)
      ' Create an array of timespan intervals.
      Dim intervals() As TimeSpan = { TimeSpan.FromDays(1.5), 
                                      TimeSpan.FromHours(1.5), 
                                      TimeSpan.FromMinutes(45), 
                                      TimeSpan.FromMilliseconds(505),
                                      New TimeSpan(1, 17, 32, 20), 
                                      New TimeSpan(-8, 30, 0) }
      ' Calculate a new time interval by adding each element to the base interval.
      For Each interval In intervals
         Console.WriteLine("{0,-10:g} {3} {1,15:%d\:hh\:mm\:ss\.ffff} = {2:%d\:hh\:mm\:ss\.ffff}", baseTimeSpan, interval,
                           baseTimeSpan.Add(interval), If(interval < TimeSpan.Zero, "-", "+"))
      Next                                      
   End Sub
End Module
' The example displays the following output:
'       1:12:15:16 + 1:12:00:00.0000 = 3:00:15:16.0000
'       1:12:15:16 + 0:01:30:00.0000 = 1:13:45:16.0000
'       1:12:15:16 + 0:00:45:00.0000 = 1:13:00:16.0000
'       1:12:15:16 + 0:00:00:00.5050 = 1:12:15:16.5050
'       1:12:15:16 + 1:17:32:20.0000 = 3:05:47:36.0000
'       1:12:15:16 - 0:07:30:00.0000 = 1:04:45:16.0000

Remarks

The return value must be between TimeSpan.MinValue and TimeSpan.MaxValue; otherwise, an exception is thrown.

The return value is a new TimeSpan; the original TimeSpan is not modified.

Applies to

See also