เมธอด TimeSpan.Add() ใน C# ใช้บวกช่วงเวลา (TimeSpan) อีกช่วงหนึ่งเข้ากับ instance นี้ คืนค่า TimeSpan ใหม่ที่เป็นผลรวม (ไม่เปลี่ยนค่าต้นฉบับ เนื่องจาก TimeSpan เป็น immutable struct)
รูปแบบไวยากรณ์ (Syntax)
public TimeSpan Add(TimeSpan ts);
ts: ช่วงเวลาที่ต้องการบวก- คืนค่า : TimeSpan ใหม่ = this + ts
ตัวอย่างที่ 1: บวกช่วงเวลาบวกทั้งคู่
using System;
public class Demo
{
public static void Main()
{
TimeSpan span1 = new TimeSpan(2, 17, 20, 30); // 2 วัน 17:20:30
TimeSpan span2 = new TimeSpan(3, 18, 25, 25); // 3 วัน 18:25:25
TimeSpan span3 = new TimeSpan(-8, 30, 0); // -8 ชม. 30 นาที
TimeSpan res1 = span1.Add(span2);
TimeSpan res2 = span2.Add(span3);
Console.WriteLine("span1 + span2 = " + res1);
Console.WriteLine("span2 + span3 = " + res2);
}
}
ผลลัพธ์
span1 + span2 = 6.11:45:55 span2 + span3 = 3.10:55:25
คำนวณ:
- span1 + span2 = (2+3) วัน + (17+18) ชม. + (20+25) นาที + (30+25) วินาที = 5 วัน 35 ชม. 45 นาที 55 วินาที = 6 วัน 11 ชม. 45 นาที 55 วินาที
- span2 + span3 = 3 วัน 18:25:25 + (-8:30:00) = 3 วัน 9:55:25
ตัวอย่างที่ 2: บวกช่วงเวลาลบและ MinValue
using System;
public class Demo
{
public static void Main()
{
TimeSpan span1 = new TimeSpan(-6, 25, 0); // -6:25:00
TimeSpan span2 = new TimeSpan(1, 11, 25, 20); // 1.11:25:20
TimeSpan span3 = TimeSpan.MinValue; // ค่าต่ำสุด
TimeSpan res1 = span1.Add(span2);
TimeSpan res2 = span2.Add(span3);
Console.WriteLine("span1 + span2 = " + res1);
Console.WriteLine("span2 + span3 = " + res2);
}
}
ผลลัพธ์
span1 + span2 = 1.05:50:20 span2 + span3 = -10675197.15:22:45.4775808
การดำเนินการคำนวณ TimeSpan อื่นๆ
| เมธอด/ออเปอเรเตอร์ | คำอธิบาย | ตัวอย่าง |
|---|---|---|
Add(ts) |
บวก TimeSpan | t1.Add(t2) |
Subtract(ts) |
ลบ TimeSpan | t1.Subtract(t2) |
+ operator |
บวก (syntax sugar) | t1 + t2 |
- operator |
ลบ | t1 - t2 |
Negate() |
กลับเครื่องหมาย | t.Negate() |
Duration() |
ค่าสัมบูรณ์ (Absolute) | t.Duration() |
สรุป
- TimeSpan เป็น immutable struct - Add() คืน instance ใหม่
- รองรับค่าลบ ได้ผลลัพธ์ลบหรือบวกตามคณิตศาสตร์
- Overflow จะโยน
OverflowException(หากเกิน MinValue/MaxValue) - ใช้
+operator เขียนสั้นได้:var result = span1 + span2; - เหมาะสำหรับ: คำนวณระยะเวลา, scheduling, timeout calculation, date math