กระทู้เก่าบอร์ด อ.Yeadram
1,017 4
URL.หัวข้อ /
URL
พี่ๆ อาจารย์ ช่วยคิดหรือแนะแนวทางให้ผมหน่อยครับ
เรียน พี่ๆ อาจารย์ ช่วยคิดหรือแนะแนวทางให้ผมหน่อยครับ
อาจจะเป็น IF หรือ Case ก็ได้ช่วยแนะนำหน่อยครับ มีโจรย์ดังนี้ครับ
พอดีมันติดที่เป็นเวลาผมเลยคิดไม่ออกครับว่าจะคำนวณยังไง
โจรย์ที่ได้มามีอย่างงี้ครับ
มีรอบเวลาการแจ้งตรวจดังนี้.
หากมีการแจ้งตรวจ(INF) ให้ทำการกดปุ่ม ChackBox(CB) แล้วให้เช็คกับรอบเวลา(CT) โดยให้เลือกรอบเวลาทุกครั้งที่ทำการแจ้งตรวจ เช่น ทำการแจ้ง 6:20 โดยเลือกรอบเวลา 10:00 และกดเลือกถูกที่ CB ก็ให้ค่าเท่ากับ T
เงื่อนไข
-หากเลือกถูก(CB) และแจ้งตรวจล่วงหน้าก่อนรอบเวลา 01.50 ชัวโมงให้ = T
-หากเลือกถูก(CB) เวลาแจ้งตรวจใกล้รอบเกิน 01.50 แต่ไม่ถึง 01.00 ชัวโมงให้ =Y
-หากไม่เลือกถูก(CB)และเวลาแจ้งตรวจใกล้รอบเกิน 01.00 ชัวโมงให้ =R
รอบเวลา
10:00
14:00
16:00
20:00
1:00
3:00
ผมจะเขียนฟังชั้นหรือให้โปรแกรมคำนวณยังไงครับ งงๆหรือเปล่ากับคำถามครับ
ขอบคุณครับผม
อาจจะเป็น IF หรือ Case ก็ได้ช่วยแนะนำหน่อยครับ มีโจรย์ดังนี้ครับ
พอดีมันติดที่เป็นเวลาผมเลยคิดไม่ออกครับว่าจะคำนวณยังไง
โจรย์ที่ได้มามีอย่างงี้ครับ
มีรอบเวลาการแจ้งตรวจดังนี้.
หากมีการแจ้งตรวจ(INF) ให้ทำการกดปุ่ม ChackBox(CB) แล้วให้เช็คกับรอบเวลา(CT) โดยให้เลือกรอบเวลาทุกครั้งที่ทำการแจ้งตรวจ เช่น ทำการแจ้ง 6:20 โดยเลือกรอบเวลา 10:00 และกดเลือกถูกที่ CB ก็ให้ค่าเท่ากับ T
เงื่อนไข
-หากเลือกถูก(CB) และแจ้งตรวจล่วงหน้าก่อนรอบเวลา 01.50 ชัวโมงให้ = T
-หากเลือกถูก(CB) เวลาแจ้งตรวจใกล้รอบเกิน 01.50 แต่ไม่ถึง 01.00 ชัวโมงให้ =Y
-หากไม่เลือกถูก(CB)และเวลาแจ้งตรวจใกล้รอบเกิน 01.00 ชัวโมงให้ =R
รอบเวลา
10:00
14:00
16:00
20:00
1:00
3:00
ผมจะเขียนฟังชั้นหรือให้โปรแกรมคำนวณยังไงครับ งงๆหรือเปล่ากับคำถามครับ
ขอบคุณครับผม
4 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R20946
อ่านไม่รู้เรื่องเลย เว้นวรรคไม่มี จับใจความไม่ค่อยได้ ดำน้ำไปแล้วกัน โค้ดออกมาแบบนี้มังครับ ลองไปปรับดูแล้วกัน
Select Case Abs(DateDiff("n", CDate(INF), CDate(CT)))
Case Is > 110
If CB Then Answer = "T"
Case 60 To 110
If CB Then Answer = "Y"
Case Else
If Not CB Then Answer = "R"
End Select
3 @R20947
แต่ระวังเรื่องของเวลาที่ข้ามวันด้วยครับ ไปทดสอบดูเองแล้วกัน
4 @R20948
ขอบคุณครับ
Time: 0.3392s
Dim T2 As Integer
Dim T3 As Integer
Dim T22 As Integer
Dim T32 As Integer
T1 = CT.Value
T2 = INF.Value
T22 = Left([T2], 2) 'คิดเวลาชั่วโมงให้เป็น เช่น 01:30 คิดทางซ้ายขวาบวกกัน
T23 = Right([T2], 2)
T2 = (T22 * 60) + (T23)
If CK.Value = True Then
If T2 - T1 > 110 Then
T3 = T
ANSWER.Value = T3
ElseIf T2 - T1 > 110 And T2 < 120 Then
T3 = Y
ANSWER.Value = T3
Else
T3 = R
ANSWER.Value = T3
End If
End If
จำนวนรอบผมทำให้เป็นนาที
แต่ผมติดตรงบรรทัด T2 = INF.Value ครับเหมือนมันไม่ยอมว่าวันที่ไม่ใช่ integer
ผมจะต้องแก้ยังไงครับ ผมมั่วๆได้มาแบบนี้หละครับ ช่วยแนะด้วยครับ
ขอบคุณครับ