[C#]計算日期過了幾天

[C#]計算日期過了幾天

本例是計算距離上次發薪日過了幾天 及 下次發薪日還剩幾天

假設 每月5號是發薪日,通常是用大的日期減小的日期

或是兩個日期相減取絕對值 也可以。

TimeSpan ts1 = DateTime.Now - LastSalaryDay;

用ts1.Days 來取得 距離的天數

TimeSpan 物件表示測量的時間間隔或期間,可為正或負的天數、時數、分鐘數、秒數和秒數的分數。用來測量期間的最大時間單位是「天」。為保持一致性,會以「天」為單位測量時間間隔,因為更大時間單位 (例如月和年) 的天數會不同。

 


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
    class Program
    {
        static void Main(string[] args)
        {
            DateTime LastSalaryDay = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 5);
            DateTime NextSalaryDay = new DateTime(DateTime.Now.AddMonths(1).Year, DateTime.Now.AddMonths(1).Month, 5);
            System.Console.WriteLine("上次發薪日: {0} ", LastSalaryDay.ToString("yyyy/MM/dd"));
            TimeSpan ts1 = DateTime.Now - LastSalaryDay;
            Console.WriteLine("距離上次發薪日已過了{0}天",ts1.Days);
            System.Console.WriteLine("下次發薪日: {0} ", NextSalaryDay.ToString("yyyy/MM/dd"));
           //用大的日期 減小的日期
           // TimeSpan ts2 =NextSalaryDay - DateTime.Now;
            TimeSpan ts2 = DateTime.Now - NextSalaryDay;   //小的日期減大的日期         
            Console.WriteLine("距離下次發薪日還有{0}天", Math.Abs(ts2.Days)); //距離幾天一定是正的 用Math.Abs取絕對值
            System.Console.ReadLine();
        }
    }
 


如有錯誤 歡迎指正