本例是計算距離上次發薪日過了幾天 及 下次發薪日還剩幾天
假設 每月5號是發薪日,通常是用大的日期減小的日期
或是兩個日期相減取絕對值 也可以。
TimeSpan ts1 = DateTime.Now - LastSalaryDay;
用ts1.Days 來取得 距離的天數
TimeSpan 物件表示測量的時間間隔或期間,可為正或負的天數、時數、分鐘數、秒數和秒數的分數。用來測量期間的最大時間單位是「天」。為保持一致性,會以「天」為單位測量時間間隔,因為更大時間單位 (例如月和年) 的天數會不同。
以下是範例code
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();
}
}