2022/8/30 - 2015/2/17
script 或 程式都可以
正常來說,比較少會計算幾月。
畢竟有28 29 30 31的問題存在。
比較單純的計算是,先計算出實際日數。
除於365天(忽略閏年366日的計算)
剩於日數再除於30日做為月數。
再將剩於日數當成日數。
以上是一種算法。
另外一種算法為對應計算法。
年對年、月對月、日對日。
基中月的基數為12
日的基數正常還是會用30。
有些人會用最大31底數來計算。這就看人了。
也就是說。當月扣除後為負值的情況下。需要扣掉1年並+12(基數)到月計算。
同理日數也等同辦理。當日數扣除為負數的情況下。需要扣除1個月+30日到日數計算
比較複雜的計算就是會將閏月閏年也合計計算進去。
我是比較喜歡用第一種算法。畢竟第二種算法的誤差性太大。
第一種算法可以先將日期轉換為unixtime後計算日數。(這樣可以排除閏年閏月的問題)
再依照日數來換成?年?月?日處理。
畢竟差異日數並沒有閏年閏月的問題存在。只是單純的計算值。實際日數值。
可以算幾天或幾周
幾個月有28.29.30.31天的問題
//C Sharp算天數
private void DayMATH()
{
DateTime D1 = new DateTime(2022, 08, 30);
DateTime D2 = new DateTime(2015, 02, 17);
label1.Text = (D1 - D2).Days.ToString();
}