作者bleed1979 (十三)
看板C_Sharp
標題Re: [問題] 日期相減取年月日
時間Sat Aug 30 00:55:57 2014
※ 引述《GoalBased (Artificail Intelligence)》之銘言:
: 想請問一下
: 有沒有這一類的函示可以用
: ex
: 日期1 : 2014/08/29
: 日期2 : 2013/08/29
: 日期1 - 日期2 = 1年 0月 0日
: --------------------------------------
: 日期1 : 2014/08/29
: 日期2 : 2013/08/30
: 日期1 - 日期2 = 0年 11月 29日(日這邊可能不太精準,但就是這個意思)
: 謝謝大家
你確定不用這種寫法嗎?
把閏年那些有的沒的交給語言:
while(birthDate.Date.AddYears(1) <= endDate.Date)
{
birthDate = birthDate.Date.AddYears(1);
years += 1;
}
while (birthDate.Date.AddMonths(1) <= endDate.Date)
{
birthDate = birthDate.Date.AddMonths(1);
months += 1;
}
while (birthDate.Date.AddDays(1) <= endDate.Date)
{
birthDate = birthDate.Date.AddDays(1);
days += 1;
}
例外那些沿用原來的。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.135.203.156
※ 文章網址: http://webptt.com/m.aspx?n=bbs/C_Sharp/M.1409331359.A.F38.html
1F:推 GoalBased: 抱歉,不太清楚你第一句話是甚麼意思 08/30 03:26
2F:→ GoalBased: 另外我就是希望自己不用處理閏年那些問題 08/30 03:27
3F:→ GoalBased: 所以才會請教有沒有這類的涵式可以使用的 08/30 03:27
4F:→ GoalBased: 還有稍微看了一下你的code和我給的連結範例 08/30 03:29
5F:→ GoalBased: 似乎不用while跑多次迴圈來處理是比較好(?) 08/30 03:29
6F:→ GoalBased: 得做法吧(當下直覺),另外今天也請教了公司前輩 08/30 03:30
7F:→ GoalBased: 他也是類似我貼的那個範例寫法,不過我還沒 08/30 03:30
8F:→ GoalBased: 去仔細看邏輯就是了(這點非常抱歉) 08/30 03:31
9F:→ GoalBased: 假日後我會看得 謝謝你的回覆 08/30 03:31
10F:→ bleed1979: 第一句話意思在於程式可讀性,正確性和效能的trade off 08/30 07:03
11F:→ bleed1979: 你的寫法減完後又做調整,不加註解很難看出調整的規則 08/30 07:05
12F:→ bleed1979: 在效能上迴圈並不會跑太多次,現今處理速度不會慢。 08/30 07:06
13F:→ bleed1979: 就正確性上來看,你的寫法測試就不曉得要多少個測資。 08/30 07:08
14F:→ bleed1979: 才能保證是完全正確的,比如2/29和3/1還要想辦法生成。 08/30 07:09
15F:推 GoalBased: 你說的我的些法是說我的連結還是範例呢 08/30 12:33
16F:→ bleed1979: 應該是指你提供的解答,就是連結那個。 08/30 14:48
17F:推 GoalBased: 好的,非常謝謝你,我會再研究一下的 08/30 15:44