Đánh giá chủ đề:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Hỏi] Tính khoảng thời gian giữa hai thời điểm (theo phút)
#1
Hi all
Hiện tại mình gặp khó khăn trong việc xử lý tính khoảng thời gian giữa hai thời điểm khác nhau. Hai thời điểm này sẽ được nhập trên form. Trong trường hợp mốc time cuối > mốc time đầu thì có thể làm được nhưng trong trường hợp ngược lại thì không đúng. Ví dụ mốc thời gian đầu là 22:15 và mốc thời gian sau là 1:15 chẳng hạn. Thời gian giới hạn chỉ trong 24h thôi. Kết quả đúng phải là 360 phút. Vậy nhờ các bạn giúp mình thủ thuật này nhé
Cám ơn các bạn nhiều
Chữ ký của tvn_hut Xin chào, mình là Dameaccess, Tham gia http://thuthuataccess.com/forum từ ngày 06-06 -13.
Reply
Những người đã cảm ơn
#2
Gợi ý cho bạn nhé:
1. Nên thiết đặt thêm thuộc tính ngày, khi đó dùng các hàm DateTime để tính tương ứng ra số giờ.
2. Dùng hàm if để xử lý.
(Hướng dẫn chi tiết quá sợ bạn không chịu tư duy, cái này thiên về toán học một chút)
Chúc thành công
Chữ ký của cpucloi Tôi chỉ biết mỗi một điều là những điều tôi biết được còn quá ít 021
Gmail: cgiahuy13@gmail.com


ღღღღღTài sản của cpucloi (View All Items) ღღღღღ
Reply
Những người đã cảm ơn tvn_hut
#3
(22-08-13, 05:40 PM)tvn_hut Đã viết: Hi all
Hiện tại mình gặp khó khăn trong việc xử lý tính khoảng thời gian giữa hai thời điểm khác nhau. Hai thời điểm này sẽ được nhập trên form. Trong trường hợp mốc time cuối > mốc time đầu thì có thể làm được nhưng trong trường hợp ngược lại thì không đúng. Ví dụ mốc thời gian đầu là 22:15 và mốc thời gian sau là 1:15 chẳng hạn. Thời gian giới hạn chỉ trong 24h thôi. Kết quả đúng phải là 360 phút. Vậy nhờ các bạn giúp mình thủ thuật này nhé
Cám ơn các bạn nhiều

Chào bạn!
Nói chung mềnh chưa rõ ý bạn 24h là gì. Nhưng theo logic đúng thì chỉ có 3h thôi.
Sử dụng logic này nhé:

Hour = (IIf([End Time]<[Start Time],[End Time]-[Start Time]+24,[End Time]-[Start Time]))

chúc bạn thành công
Chữ ký của truonghet
Website: https://sites.google.com/site/requirementsoftware
Nhận làm phần mềm access kế toán, kho, đề tài học tập....hire me!
Email: requirementsoftware@gmail.com
Tel: 0168 2381 993
Yahoo and Skype: truonghet
Reply
Những người đã cảm ơn
#4
time cuối (t2) > mốc time đầu (t1) thì kq = t2-t1.
time cuối (t2) < mốc time đầu (t1) thì kq = t2+24-t1.

---là OK
Chữ ký của thquanks Xin chào, mình là thquanks, Tham gia http://thuthuataccess.com/forum từ ngày 24-07 -13.
Reply
Những người đã cảm ơn
#5
(23-08-13, 08:49 AM)thquanks Đã viết: time cuối (t2) > mốc time đầu (t1) thì kq = t2-t1.
time cuối (t2) < mốc time đầu (t1) thì kq = t2+24-t1.

---là OK

Ý tưởng không khác gì của mình nhi~014
Chữ ký của truonghet
Website: https://sites.google.com/site/requirementsoftware
Nhận làm phần mềm access kế toán, kho, đề tài học tập....hire me!
Email: requirementsoftware@gmail.com
Tel: 0168 2381 993
Yahoo and Skype: truonghet
Reply
Những người đã cảm ơn htc2017
#6
(23-08-13, 09:44 AM)truonghet Đã viết:
(23-08-13, 08:49 AM)thquanks Đã viết: time cuối (t2) > mốc time đầu (t1) thì kq = t2-t1.
time cuối (t2) < mốc time đầu (t1) thì kq = t2+24-t1.

---là OK

Ý tưởng không khác gì của mình nhi~014


SORRY tớ chưa đọc kịp <-------------------------
Chữ ký của thquanks Xin chào, mình là thquanks, Tham gia http://thuthuataccess.com/forum từ ngày 24-07 -13.
Reply
Những người đã cảm ơn
#7
Hi all, Cám ơn các bạn nha
Đúng là không có cách nào ngoài việc cộng thêm 24h cả. Mình cũng đã thử và kết quả tạm hài lòng
Đây là code mình viết, nếu bạn nào có cách viết hay hơn thì cho mình hay nhé:
Mã PHP:
[Dim Mtime As Date
Private Sub CboDETime_AfterUpdate()
  If 
Not IsNull(Me![DSTime]) And Not IsNull(Me![DETime]) Then
     
If Hour(Me![DETime]) > Hour(Me![DSTime]) Then
     Mtime 
= (Me![DETime] - Me![DSTime])
     Else
     
Mtime = (Me![DETime] + 24 Me![DSTime])
     
End If
     
TotDownTime IIf(Hour(Mtime) = 120Hour(Mtime) * 60) + Minute(Mtime)
  
End If
End Sub
Private Sub DSTime_AfterUpdate()
  If 
Not IsNull(Me![DSTime]) And Not IsNull(Me![DETime]) Then
       
If Hour(Me![DETime]) > Hour(Me![DSTime]) Then
     Mtime 
= (Me![DETime] - Me![DSTime])
     Else
     
Mtime = (Me![DETime] + 24 Me![DSTime])
     
End If
     
TotDownTime IIf(Hour(Mtime) = 120Hour(Mtime) * 60) + Minute(Mtime)
  
End If
End Sub
Private Sub CboTotDownTime_AfterUpdate()
   If 
Not IsNull(Me![DSTime]) And Not IsNull(Me![DETime]) Then
       
If Hour(Me![DETime]) > Hour(Me![DSTime]) Then
     Mtime 
= (Me![DETime] - Me![DSTime])
     Else
     
Mtime = (Me![DETime] + 24 Me![DSTime])
     
End If
     
TotDownTime IIf(Hour(Mtime) = 120Hour(Mtime) * 60) + Minute(Mtime)
  
End If
  If 
Not IsNull(Me![DSTime]) And Not IsNull(Me![DETime]) Then
     Mtime 
CVDate(Me![DSTime]) + CVDate(Me![TotDownTime] \ 60 ":" Me![TotDownTime] - (Me![TotDownTime] \ 60) * 60)
     
Me![DETime] = Mtime
  End 
If     
End Sub/php 
]
[/php]
Chữ ký của tvn_hut Xin chào, mình là Dameaccess, Tham gia http://thuthuataccess.com/forum từ ngày 06-06 -13.
Reply
Những người đã cảm ơn htc2017


Có thể liên quan đến chủ đề
Chủ đề: Tác giả Trả lời: Xem: Bài mới nhất
  [Hỏi] Mã Số Hóa Đơn Tăng Dần theo Ngày - Tháng - Năm pherotao 17 564 11-11-17, 09:15 PM
Bài mới nhất: pherotao
  [Thủ Thuật] Lọc điều kiện theo nhiều dòng trong 1 Listbox hoặc nhiều Listbox ongke0711 11 1,678 23-09-17, 04:54 PM
Bài mới nhất: ongke0711
  Xin file demo theo yêu cầu, tùy biến các query theo câu lệnh SQL Đình Phán 12 693 19-08-17, 07:08 AM
Bài mới nhất: cpucloi
  [Thủ Thuật] Liên kết dữ liệu giữa subform và mainform tvn_hut 13 1,806 14-08-17, 12:41 AM
Bài mới nhất: MTNQ
  [Hỏi] Truyền dữ liệu giữa 2 file Access ?? btnnhut 3 249 03-07-17, 01:14 PM
Bài mới nhất: tranthanhan1962

Chuyển nhanh:


User(s) browsing this thread: 1 Guest(s)
Diễn Đàn Thơ Văn Thi Ẩm Lâu|Nhà Hàng Sông Thơ