Tìm ngày cuối tháng, cuối tháng trước

Các thủ thuật liên quan đến xử lý chuỗi và thời gian
Post Reply
User avatar
truongphu
VIP
VIP
Posts: 4781
Joined: Sun 04/11/2007 10:57 am
Location: Cam Đức, Khánh hòa
Has thanked: 14 times
Been thanked: 525 times

Tìm ngày cuối tháng, cuối tháng trước

Post by truongphu »

Thủ thuật: Tìm ngày cuối tháng, cuối tháng trước
Tác giả: truongphu
Mô tả: Tìm ngày cuối tháng, cuối tháng trước, cuối tháng sau
  1. Function CuôiTháng(ByVal Dt As Date)
  2.     CuôiTháng = DateSerial(Year(Dt), Month(Dt) + 1, 0)
  3. End Function
  4.  
  5. Function ÐâuTháng(ByVal Dt As Date)
  6.     ÐâuTháng = DateSerial(Year(Dt), Month(Dt), 1)
  7. End Function
  8.  
  9. Function CuôiThángTruoc(ByVal Dt As Date)
  10.     CuôiThángTruoc = DateSerial(Year(Dt), Month(Dt), 0)
  11. End Function
  12.  
  13. Function ÐâuThángTruoc(ByVal Dt As Date)
  14.     ÐâuThángTruoc = DateSerial(Year(Dt), Month(Dt) - 1, 1)
  15. End Function
  16.  
  17. Function CuôiThángSau(ByVal Dt As Date)
  18.     CuôiThángSau = DateSerial(Year(Dt), Month(Dt) + 2, 0)
  19. End Function
  20.  
  21. Function ÐâuThángSau(ByVal Dt As Date)
  22.     ÐâuThángSau = DateSerial(Year(Dt), Month(Dt) + 1, 1)
  23. End Function
  24.  
  25. Function CuôiThángNamTruoc(ByVal Dt As Date)
  26.     CuôiThángNamTruoc = DateSerial(Year(Dt) - 1, Month(Dt) + 1, 0)
  27. End Function
  28.  
  29. Private Sub Form_Paint()
  30. Const Ngày As Date = #1/25/2010#
  31. Print
  32. Print " Ngày Khao sát " & Ngày
  33. Print "     Tháng " & Month(Ngày) & " Nam " & Year(Ngày)
  34. Print
  35. Print " Ngày Ðâ`u tháng " & ÐâuTháng(Ngày)
  36. Print " Ngày Cuô'i tháng " & CuôiTháng(Ngày)
  37. Print
  38. Print " Ngày Ðâ`u tháng tru'o'c " & ÐâuThángTruoc(Ngày)
  39. Print " Ngày Cuô'i tháng tru'o'c " & CuôiThángTruoc(Ngày)
  40. Print
  41. Print " Ngày Ðâ`u tháng sau " & ÐâuThángSau(Ngày)
  42. Print " Ngày Cuô'i tháng sau " & CuôiThángSau(Ngày)
  43. Print
  44. Print " Ngày Cuô'i tháng nam tru'o'c " & CuôiThángNamTruoc(Ngày)
  45. End Sub
Attachments
Ðâu Cuôi Tháng.rar
(1.27 KiB) Downloaded 598 times
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh
User avatar
truongphu
VIP
VIP
Posts: 4781
Joined: Sun 04/11/2007 10:57 am
Location: Cam Đức, Khánh hòa
Has thanked: 14 times
Been thanked: 525 times

Kiểm tra tính đối xứng của một chuỗi

Post by truongphu »

  1. Function ÐôiXung(ByVal Chuôi As String) As Boolean
  2.     If Chuôi = StrReverse(Chuôi) Then ÐôiXung = True
  3. End Function
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh
toiyeuvb
Thành viên chính thức
Thành viên chính thức
Posts: 27
Joined: Wed 05/05/2010 4:11 pm
Has thanked: 2 times
Been thanked: 6 times

Re: Tìm ngày cuối tháng, cuối tháng trước

Post by toiyeuvb »

Xin lỗi bác Phú vì phải post bài ở đây hỏi bác.
hiện tại em dùng hàm này phut = DateDiff("n", starttime, Now()) để tính số phút giữa 2 khoản thời gian, nhưng gặp lỗi như sau nhờ bác tư vấn.
ví dụ starttime='26/08/2010 11:07:50 PM'
và đến lúc now()='27/08/2010 12:13:50 PM' nghĩa là ban đêm khi nó vừa qua con số 12 giờ thì ngày nó bắt đầu nhảy sang ngày khác. nếu đúng thời gian thì chỉ có 65 phút nhưng nó hiểu theo kiểu ngày khác nên đã tính lên đến 778 phút nghĩa là lúc này hàm không tính đúng thời gian nửa.
Vậy theo các bác cho em hỏi để tính thời gian đúng như yêu cầu thì sử dụng hàm gì để tránh trường hợp trên.
Cảm ơn các bác đã đọc bài viết
User avatar
truongphu
VIP
VIP
Posts: 4781
Joined: Sun 04/11/2007 10:57 am
Location: Cam Đức, Khánh hòa
Has thanked: 14 times
Been thanked: 525 times

Re: Tìm ngày cuối tháng, cuối tháng trước

Post by truongphu »

toiyeuvb wrote:ví dụ starttime='26/08/2010 11:07:50 PM'
và đến lúc now()='27/08/2010 12:13:50 PM' nghĩa là ban đêm khi nó vừa qua con số 12 giờ
Vừa đi qua con số 12 giờ, sẽ là AM, nên quãng thời gian cần tính theo DateDiff("n", vẫn đúng, đó là số phút nhỏ. bạn xem lại...
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh
toiyeuvb
Thành viên chính thức
Thành viên chính thức
Posts: 27
Joined: Wed 05/05/2010 4:11 pm
Has thanked: 2 times
Been thanked: 6 times

Re: Tìm ngày cuối tháng, cuối tháng trước

Post by toiyeuvb »

Cảm ơn bác phú nhưng mình set giờ hệ thống 24h. nên khắc phục được lỗi trên. Vấn đề đang tìm cách sét time hệ thống khi load chương trình mà không cần chỉnh bằng tay. thay đổi định dạng giờ của hệ thống theo chuẩn HH:mm:ss
bác có đoạn code này thì share cho em dùng với.
thanks các bác đã đọc bài viết
Post Reply

Return to “[VB] Chuỗi và Thời gian”