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

เมธอด TimeSpan.FromSeconds() ใน C#

เมธอด TimeSpan.FromSeconds() ใน C# ใช้สร้าง TimeSpan จากจำนวนวินาทีที่ระบุ (รองรับทศนิยม จนถึงมิลลิวินาที)

ไวยากรณ์ (Syntax)

public static TimeSpan FromSeconds(double value);
  • value — จำนวนวินาที (double) — รองรับเศษส่วน (มิลลิวินาที, ไมโครวินาที)
  • คืนค่า TimeSpan ที่แทนช่วงเวลาดังกล่าว
  • โยน ArgumentException หาก value < TimeSpan.MinValue หรือ > TimeSpan.MaxValue, หรือ OverflowException

ตัวอย่างที่ 1: สร้าง TimeSpan จากวินาทีทศนิยมและเปรียบเทียบ

using System;

public class Demo
{
    public static void Main()
    {
        TimeSpan span1 = TimeSpan.FromSeconds(0.6768788);
        TimeSpan span2 = new TimeSpan(25, 15, 45);      // 25 days, 15 hours, 45 minutes
        TimeSpan span3 = TimeSpan.FromHours(0.4788);
        TimeSpan span4 = TimeSpan.FromMilliseconds(0.8787);
        TimeSpan span5 = TimeSpan.FromMinutes(2.550);

        Console.WriteLine("TimeSpan1 = " + span1);
        Console.WriteLine("TimeSpan2 = " + span2);
        Console.WriteLine("TimeSpan3 = " + span3);
        Console.WriteLine("TimeSpan4 = " + span4);
        Console.WriteLine("TimeSpan5 = " + span5);

        Console.WriteLine("Result (Comparison of span1 and span2) = " + TimeSpan.Compare(span1, span2));
        Console.WriteLine("Result (Comparison of span2 and span3) = " + TimeSpan.Compare(span2, span3));
        Console.WriteLine("Result (Comparison of span1 and span3) = " + TimeSpan.Compare(span1, span3));
        Console.WriteLine("Result (Comparison of span3 and span4) = " + TimeSpan.Compare(span3, span4));
        Console.WriteLine("Result (Comparison of span4 and span5) = " + TimeSpan.Compare(span4, span5));
    }
}

ผลลัพธ์

TimeSpan1 = 00:00:00.6770000
TimeSpan2 = 1.01:15:45
TimeSpan3 = 00:28:43.6800000
TimeSpan4 = 00:00:00.0010000
TimeSpan5 = 00:02:33
Result (Comparison of span1 and span2) = -1
Result (Comparison of span2 and span3) = 1
Result (Comparison of span1 and span3) = -1
Result (Comparison of span3 and span4) = 1
Result (Comparison of span4 and span5) = -1

ตัวอย่างที่ 2: FromSeconds กับค่าต่างๆ และเปรียบเทียบ

using System;

public class Demo
{
    public static void Main()
    {
        TimeSpan span1 = TimeSpan.FromSeconds(1);
        TimeSpan span2 = new TimeSpan(-9, 45, 50);
        TimeSpan span3 = TimeSpan.FromHours(5);
        TimeSpan span4 = TimeSpan.FromMilliseconds(10000);
        TimeSpan span5 = TimeSpan.FromMinutes(2);

        Console.WriteLine("TimeSpan1 = " + span1);
        Console.WriteLine("TimeSpan2 = " + span2);
        Console.WriteLine("TimeSpan3 = " + span3);
        Console.WriteLine("TimeSpan4 = " + span4);
        Console.WriteLine("TimeSpan5 = " + span5);

        Console.WriteLine("Result (Comparison of span1 and span2) = " + TimeSpan.Compare(span1, span2));
        Console.WriteLine("Result (Comparison of span2 and span3) = " + TimeSpan.Compare(span2, span3));
        Console.WriteLine("Result (Comparison of span1 and span3) = " + TimeSpan.Compare(span1, span3));
        Console.WriteLine("Result (Comparison of span3 and span4) = " + TimeSpan.Compare(span3, span4));
        Console.WriteLine("Result (Comparison of span4 and span5) = " + TimeSpan.Compare(span4, span5));
    }
}

ผลลัพธ์

TimeSpan1 = 00:00:01
TimeSpan2 = -08:14:10
TimeSpan3 = 05:00:00
TimeSpan4 = 00:00:10
TimeSpan5 = 00:02:00
Result (Comparison of span1 and span2) = 1
Result (Comparison of span2 and span3) = -1
Result (Comparison of span1 and span3) = -1
Result (Comparison of span3 and span4) = 1
Result (Comparison of span4 and span5) = -1

สรุป

  • TimeSpan.FromSeconds(double) — สร้าง TimeSpan จากวินาที (รองรับทศนิยม)
  • TimeSpan.Compare(ts1, ts2) — คืน -1 (ts1ts2)
  • เมธอด factory อื่นๆ: FromTicks, FromMilliseconds, FromMinutes, FromHours, FromDays
  • คอนสตรัคเตอร์: new TimeSpan(days, hours, minutes, seconds, milliseconds)
  • TimeSpan รองรับค่าลบ (negative) — ใช้แทนความต่างเวลา
  • คุณสมบัติที่ใช้บ่อย: TotalDays, TotalHours, TotalMinutes, TotalSeconds, TotalMilliseconds, Ticks

ตารางเมธอด Factory ของ TimeSpan

เมธอดพารามิเตอร์ตัวอย่าง
FromTickslongFromTicks(10_000_000) = 1 วินาที
FromMillisecondsdoubleFromMilliseconds(500) = 0.5 วินาที
FromSecondsdoubleFromSeconds(1.5) = 1.5 วินาที
FromMinutesdoubleFromMinutes(1.5) = 1 นาที 30 วินาที
FromHoursdoubleFromHours(2.5) = 2 ชั่วโมง 30 นาที
FromDaysdoubleFromDays(1.5) = 1 วัน 12 ชั่วโมง

การใช้งานจริง: Timeout, Delay, Interval

// Task.Delay รับ TimeSpan
await Task.Delay(TimeSpan.FromSeconds(2.5));

// Timer
var timer = new Timer(_ => DoWork(), null, TimeSpan.FromSeconds(10), TimeSpan.FromSeconds(30));

// Timeout ใน HttpClient
client.Timeout = TimeSpan.FromSeconds(30);