TimeSpan และระยะเวลา
วัดช่วงเวลา
TimeSpan และระยะเวลา เป็นบทเรียน C# Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน C# Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส C# Academy มีบทเรียนทั้งหมด 4 บทเรียน
TimeSpan คืออะไร
ในขณะที่ DateTime แทนจุดหนึ่งบนเส้นเวลา TimeSpan จะแทนช่วงระยะเวลา เช่น 2 ชั่วโมงหรือ 90 นาที
TimeSpan คือระยะเวลาที่ไม่มีปฏิทินกำกับ คุณใช้สำหรับผลจากนาฬิกาจับเวลา เวลาหมด และช่วงห่างระหว่างวันที่สองค่าได้
การสร้าง TimeSpan
ตัวสร้างหนึ่งตัวรับชั่วโมง นาที และวินาที ได้แก่ new TimeSpan(hours, minutes, seconds)
ดังนั้น new TimeSpan(1, 30, 0) จึงหมายถึงหนึ่งชั่วโมงสามสิบนาที ค่าดังกล่าวจะแสดงในรูปแบบ h:mm:ss ที่อ่านเข้าใจได้ง่าย
using System;
class Program
{
static void Main()
{
TimeSpan span = new TimeSpan(1, 30, 0);
Console.WriteLine(span);
}
}วิธีการสร้างจากโรงงาน
บ่อยครั้งการใช้วิธีการสร้างจากโรงงานจะทำให้อ่านเข้าใจได้ดีกว่า TimeSpan.FromMinutes(90) จะสร้างช่วงเวลา 90 นาที
ยังมีตัวช่วยที่สอดคล้องกัน ได้แก่ FromHours, FromSeconds, FromDays และ FromMilliseconds
using System;
class Program
{
static void Main()
{
TimeSpan span = TimeSpan.FromMinutes(90);
Console.WriteLine(span);
}
}ค่ารวมกับค่าองค์ประกอบ
TimeSpan มีคุณสมบัติอยู่สองกลุ่ม Hours, Minutes และ Seconds คือค่าองค์ประกอบที่แยกย่อยออกมา
ส่วนคุณสมบัติที่ขึ้นต้นด้วย Total... เช่น TotalMinutes จะแสดงระยะเวลาทั้งหมดในหน่วยเดียวเป็นเลขทศนิยม
using System;
class Program
{
static void Main()
{
TimeSpan span = TimeSpan.FromMinutes(90);
Console.WriteLine(span.Hours);
Console.WriteLine(span.TotalMinutes);
}
}อธิบายค่าองค์ประกอบกับค่ารวม
สำหรับ 90 นาที ค่า Hours คือ 1 และค่า Minutes คือ 30 เพราะระยะเวลานี้แยกได้เป็น 1 ชั่วโมงกับ 30 นาที
แต่ค่า TotalHours คือ 1.5 และค่า TotalMinutes คือ 90 เนื่องจากค่าทั้งสองนับระยะเวลาทั้งหมดด้วยหน่วยเดียว
using System;
class Program
{
static void Main()
{
TimeSpan span = TimeSpan.FromMinutes(90);
Console.WriteLine(span.TotalHours);
}
}การลบวันที่สองค่า
เมื่อลบ DateTime หนึ่งค่าออกจากอีกค่าหนึ่ง ผลลัพธ์จะเป็น TimeSpan
นี่เป็นวิธีทั่วไปในการหาว่าเวลาผ่านไประหว่างสองช่วงเวลามากน้อยเพียงใด เช่น ใช้หาความยาวของเหตุการณ์
using System;
class Program
{
static void Main()
{
DateTime start = new DateTime(2024, 3, 5, 9, 0, 0);
DateTime end = new DateTime(2024, 3, 5, 11, 30, 0);
TimeSpan diff = end - start;
Console.WriteLine(diff.TotalHours);
}
}การบวก TimeSpan
คุณสามารถบวกหรือลบค่า TimeSpan ด้วยตัวดำเนินการ + และ - ตามปกติ
การรวมระยะเวลาสองช่วงเข้าด้วยกันจะได้ระยะเวลาที่ยาวขึ้น ซึ่งมีประโยชน์เมื่อต้องรวมช่วงเวลาหลายช่วง
using System;
class Program
{
static void Main()
{
TimeSpan a = TimeSpan.FromMinutes(45);
TimeSpan b = TimeSpan.FromMinutes(15);
Console.WriteLine((a + b).TotalMinutes);
}
}ระยะเวลาเป็นลบ
TimeSpan อาจมีค่าเป็นลบได้ หากเวลาสิ้นสุดอยู่ก่อนเวลาเริ่มต้น หรือเกิดจากการลบ
วิธีการ Duration จะคืนค่าสัมบูรณ์ ส่วนวิธีการ Negate จะกลับเครื่องหมาย ค่าเหล่านี้มีประโยชน์เมื่อคุณสนใจเฉพาะขนาดของระยะเวลา
using System;
class Program
{
static void Main()
{
TimeSpan span = TimeSpan.FromHours(-3);
Console.WriteLine(span.Duration().TotalHours);
}
}การเปรียบเทียบระยะเวลา
ค่า TimeSpan สามารถเปรียบเทียบด้วย <, > และ == ได้เช่นเดียวกับตัวเลข
วิธีนี้ช่วยให้คุณตรวจสอบได้ว่าระยะเวลาหนึ่งยาวกว่าอีกระยะเวลาหนึ่งหรือไม่ เช่น ใช้กำหนดเวลาสูงสุดที่อนุญาต
using System;
class Program
{
static void Main()
{
TimeSpan limit = TimeSpan.FromHours(2);
TimeSpan used = TimeSpan.FromMinutes(150);
Console.WriteLine(used > limit);
}
}ศูนย์และค่าคงที่
TimeSpan.Zero แทนเวลาที่ผ่านไปเป็นศูนย์ จึงเหมาะสำหรับใช้เป็นค่าเริ่มต้นในการรวมระยะเวลา
นอกจากนี้ยังมี TimeSpan.MinValue และ TimeSpan.MaxValue สำหรับขอบเขตสูงสุดและต่ำสุดของระยะเวลา
using System;
class Program
{
static void Main()
{
TimeSpan total = TimeSpan.Zero;
total += TimeSpan.FromMinutes(10);
Console.WriteLine(total.TotalMinutes);
}
}การจัดรูปแบบ TimeSpan
คุณสามารถจัดรูปแบบ TimeSpan ด้วยสตริงกำหนดเองได้ ตัวอย่างเช่น @"hh\:mm" จะแสดงชั่วโมงและนาที
เครื่องหมายแบ็กสแลชทำให้เครื่องหมายโคลอนแสดงตามตัวอักษร สำหรับผลลัพธ์อย่างรวดเร็ว ค่าเริ่มต้นจาก ToString มักเพียงพอแล้ว
using System;
class Program
{
static void Main()
{
TimeSpan span = new TimeSpan(2, 5, 0);
Console.WriteLine(span.ToString(@"hh\:mm"));
}
}ตรวจสอบความเข้าใจ
คุณมี TimeSpan ยาว 90 นาที คุณสมบัติใดจะคืนค่าเป็น 1.5
สรุปทบทวน
TimeSpan คือระยะเวลา คุณสามารถสร้างได้ด้วย new TimeSpan(...) หรือวิธีการสร้างจากโรงงาน เช่น FromMinutes
คุณสมบัติองค์ประกอบอย่าง Hours แตกต่างจากคุณสมบัติที่ขึ้นต้นด้วย Total... การลบ DateTimes สองค่าจะได้ TimeSpan และคุณสามารถบวก เปรียบเทียบ และจัดรูปแบบระยะเวลาได้
คำถามที่พบบ่อย
บทเรียน “TimeSpan และระยะเวลา” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “TimeSpan และระยะเวลา” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส C# Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส C# Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “TimeSpan และระยะเวลา”
วัดช่วงเวลา คุณปฏิบัติ C# Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน C# Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน C# Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน
บทเรียน “TimeSpan และระยะเวลา” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน C# Academy นี้ได้ไหม
ได้ บทเรียน C# Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- สร้าง DateTimes
- จัดรูปแบบวันที่
- TimeSpan และระยะเวลา
- การคำนวณวันที่