ต้องการทราบวิธีการคำนวณอายุ(yy:mm)
กระทู้เก่าบอร์ด อ.สุภาพ ไชยา

 444   4
URL.หัวข้อ / URL
ต้องการทราบวิธีการคำนวณอายุ(yy:mm)

ผมใช้วิธี วันเดือนปีเกิด-Now() แล้ว ปรากฏว่าบางข้อมูลจะได้เป็น 20:12 ( 20 ปี 12 เดือน) ซึ่งความจริงน่าจะได้ผลลัพธ์เป็น 21 ปี 
 
ขอรบกวนท่านผู้รู้ช่วยบอกวิธีแก้ไขด้วยครับ

4 Reply in this Topic. Dispaly 1 pages and you are on page number 1

1 @R00771
ครับ ถ้าใช้ วิธีลบดื้อแบบนี้ก็เจอปัญหาแบบนี้แหละครับ ผมเองก็เคยเจอครับ โดยทั่วๆไปถ้าใช้วิธีลบแบบนี้แล้วไม่ได้ set format อะไร จะหมายถึง ได้ผลลัพท์ออกมาเป็นจำนวนวันครับ เช่น 1 ปีมี 365 วัน ถ้าลบได้กี่ปีก็คุณเข้าไปจะได้ผลลัพท์ออกมาเป็จำนวนวันครับ ผมเคยคำนวณโดย ได้จำนวนวันออกมาเท่าไร ก็หารด้วย 365 เอาแต่จำนวนเต็มออกมาเป็นจำนวนปีครับ (ใช้ฟังก์ชันอะไร เป็นโจทย์ให้คิดครับ !) ที่เหลือเศษจำนวนวันก็หารด้วย 30 เป็นจำนวนเดือนครับ(ใช้ฟังก์ชันอะไร เป็นโจทย์ให้คิดครับ !) เหลือเศษเท่าไร ก็จะเป็นจำนวนวันครับ ..แต่จะยังไม่ตรงเท่าไรครับ เพราะไม่ได้คิดเรื่อง ปีอธิกสุรทิน คือ 4 ปีจะมีเดือน ก.พ. = 28 วัน จึงทำให้ไม่ค่อยตรงเท่าไร ส่วนการ Code ด้วยวิธีอื่นๆ ผมยังไม่เคยทดสอบดูว่าคำนวณตรงรึป่าว ก็ขึ้นอยู่กับผู้ใช้ว่าข้อมูลส่วนนี้มีความสำคัญมากแค่ไหน(ถ้าเกี่ยวกับการคำนวณดูดวงชะตา อาจจะมีความสำคัญมาก็ได้ครับ)
2 @R00772
ให้คำนวณเป็นเดือนก่อนโดยใช้ DateDiff intMonth = DateDiff("m", BDate, Now()) แล้วค่อยหาเป็นปี intYear = intMonth \ 12 และเดือน intMonth = intMonth Mod 12 ครับ
3 @R00777
ผมนำ Funtion ของ อ.สุภาพ มาตอบครับ Function CalAgeYMD2(BDate As Date) Dim intYear As Integer Dim intMonth As Integer Dim intDay As Integer If BDate < Now() Then intMonth = DateDiff("m", BDate, Now()) intDay = DateDiff("d", DateAdd("m", intMonth, BDate), Now()) If intDay < 0 Then intMonth = intMonth - 1 intDay = DateDiff("d", DateAdd("m", intMonth, BDate), Now()) End If intYear = intMonth \ 12 intMonth = intMonth Mod 12 CalAgeYMD2 = "อายุ " & intYear & " ปี " & intMonth & " เดือน " & intDay & " วัน." Else MsgBox "ยังไม่เกิดครับ" End If End Function ขอบพระคุณ ความรู้ดีๆ จาก อ.สุภาพ ครับ ขอบพระคุณครับ Suchat ชลบุรี
4 @R00798
กระจ่างครับ..ขอบพระคุณทุกท่านครับ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.0508s