NodaTime

  1. การติดตั้ง
  2. การหาจำนวน วัน เดือน ปี ระหว่าง 2 ช่วงเวลาด้วย NodaTime
  3. การใช้ NodaTime ร่วมกับ DateTime

NuGet, Noda Time

1.การติดตั้ง NodaTime

PM> Install-Package NodaTime
> dotnet add package NodaTime

หรือถ้าใช้กับ .Net เก่าๆ

PM> Install-Package NodaTime -Version 1.4.7

2.การหาจำนวน วัน เดือน ปี ระหว่าง 2 ช่วงเวลาด้วย NodaTime

using NodaTime;
using System;

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            var ld1 = new LocalDate(2018, 1, 1);
            var ld2 = new LocalDate(2019, 12, 25);
            var period = Period.Between(ld1, ld2);

            Console.WriteLine(period);        // "P1Y11M24D"  (ISO8601 format)
            Console.WriteLine(period.Years);  // 1
            Console.WriteLine(period.Months); // 11
            Console.WriteLine(period.Days);   // 24
        }
    }
}

ผลการรัน

P1Y11M24D
1
11
24

3.การใช้ NodaTime ร่วมกับ DateTime

using NodaTime;
using System;

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            DateTime d1 = new DateTime(2018, 8, 01);
            DateTime d2 = new DateTime(2018, 10, 04);
            TimeSpan diff = d2 - d1;
            Console.WriteLine("diff: " + diff.Days.ToString());
            Console.WriteLine("diff: " + diff.TotalDays.ToString());
            Console.WriteLine();

            var ld1 = new LocalDate(d1.Year, d1.Month, d1.Day);
            var ld2 = new LocalDate(d2.Year, d2.Month, d2.Day);
            var period = Period.Between(ld1, ld2);

            Console.WriteLine(period.Years);
            Console.WriteLine(period.Months);
            Console.WriteLine(period.Days);
        }
    }
}

ผลการรัน

diff: 64
diff: 64

0
2
3