台灣最大程式設計社群網站
線上人數
1500
 
會員總數:243325
討論主題:188102
歡迎您免費加入會員
討論區列表 >> ACCESS >> 月份計算錯誤
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
月份計算錯誤
價值 : 20 QP  點閱數:913 回應數:8

樓主

anny
門外漢
0 14
258 40
發送站內信

我用下列公式:
年資: DateDiff("m",[到職日期],"2012/12/31")\12 & "年" & DateDiff("m",[到職日期],"2012/12/31") Mod 12 & "月"
到職日如是:民國90/3/1 計算至101/12/31 求出年資為 :11年9個月
民國100/11/1 計算至101/12/31 求出年資為 :1年1個月
計算月部份,求出的年資比實際上少一個月
請問要如何解決這個問題?
謝謝!



本篇文章發表於2012-11-27 17:56
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
最有價值解答

tungta
捐贈 VP 給 tungta 檢舉此回應
範例給您參考
請貼上e-mail
本篇文章回覆於2012-11-27 18:13
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

anny
檢舉此回應
我的e-mail是:
anny@purigo.com.tw

謝謝!
本篇文章回覆於2012-11-27 18:19
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
不錯的參考

tungta
捐贈 VP 給 tungta 檢舉此回應
範例已寄出
本篇文章回覆於2012-11-27 19:35
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
回應

kib72377
檢舉此回應
DateDiff(interval, date1, date2[, firstdayofweek[, firstweekofyear]])
"m".............
它會忽略 比"m"更小的單位的數據(也就是"日(d)"部份),
同理,如果你用的interval時間差單位是年"yyyy",那它也會忽視月日部分的數據.
datediff 的help裡面有說明.
本篇文章回覆於2012-11-28 08:46
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
作者回應

anny
檢舉此回應
謝謝tungte,但可有較簡便函數可計算出,
不要用Visual Basic方式?
謝謝!
本篇文章回覆於2012-11-28 09:56
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
不錯的參考

kib72377
檢舉此回應
年資概略計算:
年資=(年2-年1)*1+(iif(月2-月1<0,-1,1))*(月2-月1)*(1/12)+(iif(日2-日1<0,-1,1))*(日2-日1)*(1/12)*(1/30)

年2月2日2==終止日期+1天(要不要加1天這數,可能還要再精算過)
年1月1日1==開始日期
日數的年資加成部分,每月以30日計算,想精算的話,就沒辦法用公式,只能靠程式碼了.
本篇文章回覆於2012-11-28 13:55
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
作者回應

anny
檢舉此回應
我已找到答案:
年資: DateDiff("m",[到職日期],"2012/12/31")\12 & "年" & (DateDiff("d",[到職日期],"2012/12/31") Mod 365)\30 & "個月"
天數以30天計算,雖然天數有點差異,但不致於影響太大.
本篇文章回覆於2012-11-28 14:12
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
作者回應

anny
檢舉此回應
我已找到解答,要如何結案?謝謝!
本篇文章回覆於2018-08-30 14:32
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.