Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

เมธอด TimeSpan.Add() ใน C# : บวกช่วงเวลาเข้าด้วยกัน

เมธอด 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