0Pricing
C# Academy · บทเรียน

การคำนวณวันที่

บวก ลบ และเปรียบเทียบ

การคำนวณวันที่ เป็นบทเรียน C# Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน C# Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส C# Academy มีบทเรียนทั้งหมด 4 บทเรียน

การคำนวณกับวันที่

ค่า DateTime ไม่สามารถเปลี่ยนแปลงได้ การคำนวณจะไม่แก้ไขค่า original แต่การดำเนินการทุกครั้งจะคืนค่า DateTime ใหม่

บทเรียนนี้ครอบคลุมการบวกและลบเวลา การเปรียบเทียบวันที่ และการตอบคำถาม เช่น เหลืออีกกี่วันจึงจะถึงเหตุการณ์

AddDays

วิธีการ AddDays จะคืนวันที่ที่เลื่อนไปข้างหน้าตามจำนวนวันดังกล่าว หากส่งตัวเลขติดลบ จะเป็นการเลื่อนย้อนกลับ

เนื่องจาก DateTime ไม่สามารถเปลี่ยนแปลงได้ คุณจึงต้องใช้ค่าที่คืนกลับมา ส่วนค่า original จะไม่เปลี่ยนแปลง

using System;

class Program
{
    static void Main()
    {
        DateTime d = new DateTime(2024, 3, 5);
        DateTime later = d.AddDays(10);
        Console.WriteLine(later.ToString("yyyy-MM-dd"));
    }
}

กลุ่ม Add

มีวิธีการ Add สำหรับแต่ละหน่วย ได้แก่ AddHours, AddMinutes, AddSeconds, AddMonths และ AddYears

วิธีการทั้งหมดรับทั้งตัวเลขบวกและลบ ดังนั้นวิธีการชุดเดียวจึงรองรับทั้งอนาคตและอดีต

using System;

class Program
{
    static void Main()
    {
        DateTime d = new DateTime(2024, 3, 5, 9, 0, 0);
        Console.WriteLine(d.AddHours(5).Hour);
    }
}

AddMonths จัดการวันเกินของเดือนได้

AddMonths จัดการจำนวนวันในแต่ละเดือนได้อย่างเหมาะสม การเพิ่มหนึ่งเดือนให้วันที่ 31 มกราคมจะได้วันที่ 28 หรือ 29 กุมภาพันธ์ ไม่ใช่วันที่ที่ไม่ถูกต้อง

วิธีนี้ช่วยให้คุณไม่ต้องตรวจสอบด้วยตนเองว่าแต่ละเดือนมีกี่วัน

using System;

class Program
{
    static void Main()
    {
        DateTime d = new DateTime(2024, 1, 31);
        Console.WriteLine(d.AddMonths(1).ToString("yyyy-MM-dd"));
    }
}

การย้อนกลับ

หากต้องการเลื่อนไปในอดีต ให้ส่งอาร์กิวเมนต์เป็นค่าลบ AddDays(-7) จะให้วันที่ก่อนหน้าหนึ่งสัปดาห์

ไม่มีวิธีการลบวันแยกต่างหาก ค่าลบจึงช่วยจัดการกรณีนี้ได้อย่างเรียบง่าย

using System;

class Program
{
    static void Main()
    {
        DateTime d = new DateTime(2024, 3, 5);
        Console.WriteLine(d.AddDays(-7).ToString("yyyy-MM-dd"));
    }
}

การเพิ่ม TimeSpan

คุณสามารถเพิ่ม TimeSpan ให้กับ DateTime ได้โดยตรงด้วยตัวดำเนินการ + หรือใช้วิธีการ Add

วิธีนี้สะดวกเมื่อคุณมีระยะเวลาอยู่แล้วและต้องการเลื่อนวันที่ตามระยะเวลานั้น

using System;

class Program
{
    static void Main()
    {
        DateTime d = new DateTime(2024, 3, 5, 9, 0, 0);
        DateTime later = d + TimeSpan.FromHours(3);
        Console.WriteLine(later.Hour);
    }
}

ความต่างระหว่างวันที่

การลบวันที่หนึ่งค่าออกจากอีกค่าหนึ่งจะสร้าง TimeSpan ที่อธิบายช่วงห่างระหว่างวันที่

อ่านค่า TotalDays เพื่อหาจำนวนวันระหว่างวันที่ทั้งสอง แม้จะคร่อมหลายเดือนหรือหลายปีก็ตาม

using System;

class Program
{
    static void Main()
    {
        DateTime start = new DateTime(2024, 1, 1);
        DateTime end = new DateTime(2024, 3, 1);
        Console.WriteLine((end - start).TotalDays);
    }
}

จำนวนวันจนถึงเหตุการณ์

งานที่พบบ่อยคือการนับจำนวนวันจนถึงวันที่ในอนาคต ให้ลบวันนี้ออกจากวันที่เป้าหมาย แล้วอ่านค่า TotalDays หรือคุณสมบัติ Days

การใช้วันที่กำหนดตายตัวในที่นี้ช่วยให้ผลลัพธ์คาดเดาได้สำหรับการเรียนรู้

using System;

class Program
{
    static void Main()
    {
        DateTime today = new DateTime(2024, 3, 1);
        DateTime party = new DateTime(2024, 3, 15);
        Console.WriteLine((party - today).Days);
    }
}

การเปรียบเทียบวันที่

ค่า DateTime สามารถเปรียบเทียบด้วย <, > และ == ได้ วันที่ก่อนหน้าจะมีค่าน้อยกว่าวันที่ภายหลัง

นอกจากนี้ยังมีวิธีการอย่าง CompareTo และ Equals เมื่อคุณต้องการผลการเปรียบเทียบอย่างเป็นทางการ

using System;

class Program
{
    static void Main()
    {
        DateTime a = new DateTime(2024, 1, 1);
        DateTime b = new DateTime(2024, 6, 1);
        Console.WriteLine(a < b);
    }
}

ปีอธิกสุรทินและจำนวนวันในเดือน

ตัวช่วยแบบสแตติกสองตัวช่วยตอบคำถามเกี่ยวกับปฏิทิน DateTime.IsLeapYear(year) จะคืนค่าเป็นจริงสำหรับปีอธิกสุรทิน

DateTime.DaysInMonth(year, month) จะบอกว่าเดือนที่กำหนดมีทั้งหมดกี่วัน โดยจัดการเดือนกุมภาพันธ์ได้อย่างถูกต้อง

using System;

class Program
{
    static void Main()
    {
        Console.WriteLine(DateTime.IsLeapYear(2024));
        Console.WriteLine(DateTime.DaysInMonth(2024, 2));
    }
}

จุดเริ่มต้นและจุดสิ้นสุดของวัน

หากต้องการจุดเริ่มต้นของวัน ให้ใช้คุณสมบัติ Date ซึ่งจะตัดส่วนเวลาออกให้เหลือเที่ยงคืน

สำหรับช่วงเวลาสุดท้ายของวัน ให้เพิ่มหนึ่งวันแล้วลบหนึ่งขีดเวลา หรือเพิ่มเวลา 23:59:59 คุณสมบัติ Date เป็นส่วนประกอบพื้นฐานที่ง่ายที่สุด

using System;

class Program
{
    static void Main()
    {
        DateTime d = new DateTime(2024, 3, 5, 14, 30, 0);
        Console.WriteLine(d.Date.ToString("yyyy-MM-dd HH:mm"));
    }
}

ตรวจสอบความเข้าใจ

คุณเริ่มต้นด้วยวันที่ 31 มกราคม 2024 แล้วเรียกใช้ AddMonths(1) คุณจะได้วันที่ใด

สรุปทบทวน

การคำนวณกับ DateTime จะคืนค่าใหม่ เลื่อนวันที่ด้วย AddDays, AddMonths และวิธีการอื่นที่คล้ายกัน โดยใช้ค่าลบเพื่อเลื่อนย้อนกลับ

ลบวันที่เพื่อให้ได้ TimeSpan เปรียบเทียบด้วยตัวดำเนินการ และใช้ IsLeapYear, DaysInMonth และ Date สำหรับงานเกี่ยวกับปฏิทิน

คำถามที่พบบ่อย

บทเรียน “การคำนวณวันที่” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การคำนวณวันที่” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส C# Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส C# Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การคำนวณวันที่”

บวก ลบ และเปรียบเทียบ คุณปฏิบัติ C# Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน C# Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน C# Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน

บทเรียน “การคำนวณวันที่” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน C# Academy นี้ได้ไหม

ได้ บทเรียน C# Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. สร้าง DateTimes
  2. จัดรูปแบบวันที่
  3. TimeSpan และระยะเวลา
  4. การคำนวณวันที่
← กลับไปที่ C# Academy