เกี่ยวกับการนับเวลาใน access97
กระทู้เก่าบอร์ด อ.สุภาพ ไชยา

 298   1
URL.หัวข้อ / URL
เกี่ยวกับการนับเวลาใน access97

1.ถามว่า  จาก 08.30น.-11.30น.ใช้เวลาไปเท่าใด จะเขียนCODEใส่อย่างไร ใช้ฟังค์ชั่นอะไรดี 
 
2.ถามว่า จาก 16.00 น.ของวันนี้-10.00น.ในวันถัดไป ใช้เวลาไปเท่าใด โดยไม่นับเวลาในช่วง 16.30น.เรื่อยไปจนถึงเวลา 08.29 น.จะเขียนCODEใส่อย่างไร ใช้ฟังค์ชั่นอะไรดี 
 
3.ถามว่า จาก16.00น.ของวันศุกร์ หยุด เสาร์-อาทิตย์ เริ่มนับต่อในวันจันทร์เริ่ม 08.30 น. ไปจนถึงเวลา 10.00น.ในวันจันทร์ ใช้เวลาไปเท่าใด (โดยไม่นับเวลาในช่วง 16.30น.-08.30น.และไม่นับเวลา เสาร์และอาทิตย์)จะเขียนCODEใส่อย่างไร ใช้ฟังค์ชั่นอะไรดี 
 
4.ถามว่า จาก 16.00น.ของวันศุกร์ จนถึงวันอังคาร เวลา 10.00น.  จะใช้เวลาไปเท่าใด  (ไม่นับเวลา 16.30น.-08.30น. ไม่นับวันหยุดเสาร์และอาทิตย์ และวันจันทร์ ซึ่งอาจเป็นวันหยุดวันสำคัญอื่นๆ) 
จะเขียนCODEใส่อย่างไร ใช้ฟังค์ชั่นอะไรดี 
ขอบคุณนะคะ ตอนนี้กำลังทำโปรเจคอยู่เกี่ยวกับเรื่องเวลา จะส่งงานในอาทิตย์ ช่วยหน่อยนะคะ 
 

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

1 @R00810
ทั้งหมดนี้ใช้ DateDiff() ครับ ให้ลองศึกษาการใช้ฟังก์ชันนี้ใน Help ดู แต่ที่สำคัญจะต้องเก็บฟีลด์ทั้ง 2 ให้เป็น Date/Time นะครับ ไม่งั้นจะคำนวณไม่ได้ 1. ใช้ DateDiff() แล้วกำหนดให้ Interval เป็น ชั่วโมง (h), นาที (n) หรือ วินาที (s) ตามต้องการ เช่น ? datediff("n",#08:30#,#10:30#) จะได้ 120 นาที พอหารด้วย 60 จะได้ 2 ชั่วโมง ถ้าเป็นวินาที ? datediff("n",#08:30#,#10:30#) จะได้ 7200 วินาที เมื่อหารด้วย 3600 จะได้เวลาเป็นชั่วโมงออกมา ถ้าเป็น 10.45 น. จะเห็นชัดกว่า ? datediff("n",#08:30#,#10:45#) 135 เมื่อนำมาหารไม่เอาเศษ (\) ด้วย 60 จะได้ 2 ชั่วโมง และเมื่อหารเอาเศษ (mod) จะได้ 15 นาที ? 135 \ 60 2 ? 135 mod 60 15 2. ก็ทำเหมือนข้อ 1 แต่มีวันที่เข้ามาร่วมด้วย ? datediff("n",#1 Sept 2002 16:00#,#2 Sept 2002 10:00#) 1080 เมื่อคิดเป็นชั่วโมงจะได้ 18 ชั่วโมง ? 1080 / 60 18 คราวนี้มาหาเวลาระหว่าง 16.30 -8.30 ของวันถัดไป จะได้ 16 ชั่วโมง ? datediff("n",#1 Sept 2002 16:30#,#2 Sept 2002 08:30#) 960 ? 960/60 16 ฉะนั้นจะได้เวลาที่ต่างกัน 18-16 = 2 ชั่วโมง ตอนนี้จะรู้แล้วว่าจาก 16.30 - 08.30 จะเป็นเวลา 16 ชั่วโมง ถ้าไม่นับเสาร์อาทิตย์ ก็ต้องดูว่ามันห่างกันกี่ชั่วโมง ? datediff("n",#30 Aug 2002 16:30#,#2 Sept 2002 08:30#) 3840 ? 3840 /60 64 จะได้ 64 ชั่วโมง คราวนี้มาถึงการตรวจดูว่าระหว่าง 2 วันที่และเวลา มีวันหยุดเสาร์อาทิตย์หรือเปล่าให้ใช้ฟังก์ชันนี้ช่วยครับ Function fWeekEnd(BegDate As Date, EndDate As Date) As Integer Dim DateCnt As Date Dim MyWeekEnd As Integer BegDate = DateValue(BegDate) EndDate = DateValue(EndDate) DateCnt = BegDate MyWeekEnd = 0 Do While DateCnt < EndDate If Format(DateCnt, "ddd") = "Sat" Then MyWeekEnd = MyWeekEnd + 1 End If DateCnt = DateAdd("d", 1, DateCnt) Loop fWeekEnd = MyWeekEnd End Function เช่น ? fWeekEnd(#30 Aug 2002#,#21 Sept 2002#) 3 หรือ ? fWeekEnd(#30 Aug 2002#,#2 Sept 2002#) 1 ลองนึกต่อดูครับว่าจะต้องทำอย่างไรต่ออีกดี 3. ให้ค้นหาด้วยคำว่า DateAdd ในเว็บนี้ดูครับ ผมเคยคุยเกี่ยวกับการไม่นับวันหยุดราชการพิเศษไว้ แล้วลองประยุกต์ใช้ดูนะครับ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.0601s