vb Time 的問題

假如我是每一個月5號領錢

那麼我按下command1 後

就會抓出今天的時間並且計算到5號還有幾天

請問這要怎麼做呢 ?

假如我用select case 來做 程式如下

X = Day(Date$)

Select Case X

Case 1 To 4

Y = 5 - (Val(X))

Print "還有"; Y; "天";

Case 5

Print "今天領錢"

Case 6

Y1 = (31 - Val(Day(X))) + 4

Print "還有"; Y1; "天";

case 7

.

.

case 10

到了case 10 的時候 卻不會計算下去 ..不管是10到31

都只會算case 9的 值 奇怪怎麼會這樣呢 ?

我覺得這個方法又太笨了 請問是否有更簡單的方法呢 ?

謝謝囉 !

Update:

select case 這個bug已經解決了

但是發覺有一個問題..就是月份的問題

因為有31天及30天 的 當我是小月份(30天)的時候

就會有問題了

Update 2:

謝謝各位的回答

對ACE大大的程式 當它是12月份的時候會發生錯誤..可否幫忙除錯一下

而管樂社首席的程式 在2月的時候會計算錯誤 ..

謝謝

Update 3:

MsgBox ”還有:” & DateDiff(”d”, Date, Year(Date) & ”/” & Month(Date) + 1 & ”/5”)

這一段有加1

但是12月份 後無法再加1了 所以在12月份的時候會發生錯誤 該怎麼半呢 ?

Update 4:

請問一下大師

MsgBox "還有" & DateDiff("d", Date, DateSerial(Year(Date), Month(Date) - (Day(Date) - 1 > 5), 5)) & "天領錢!!"

這一段裡面 -1>5 是什麼意思啊

這一個我不太懂

請大師交一下 謝謝

3 Answers

Rating
  • W.J.S.
    Lv 7
    1 decade ago
    Best Answer

    Private Sub Command1_Click()

    If Day(Date) = 5 Then

    MsgBox "今天領錢!!"

    Else

    MsgBox "還有" & DateDiff("d", Date, DateSerial(Year(Date), Month(Date) - (Day(Date) - 1 > 5), 5)) & "天領錢!!"

    End If

    End Sub

    2008-07-04 02:03:18 補充:

    忙中有錯XD,請改成Month(Date) - (Day(Date) - 5 >0)

    2008-07-04 02:09:21 補充:

    Month(Date) - (Day(Date) - 5 >0)

    若Day(Date) - 5 >0= True = -1→Month = Month(Date) - - 1=Month(Date) + 1→月份跳到下個月

    反之

    若Day(Date) - 5 >0= False = 0→Month = Month(Date) - 0=Month(Date)→月份不變

  • 1 decade ago

    Private Sub Command1_Click()

    x = Day(Date)

    y = Month(Date)

    a = 5 - x

    If a < 0 Then

    Select Case y

    Case 1, 3, 5, 7, 8, 10, 12

    a = a + 31

    Case Else

    a = a + 30

    End Select

    End If

    MsgBox "還有" & a & "天!"

    End Sub

    我寫了這段程式,沒有大小月的問題了...

    2008-07-01 21:41:02 補充:

    < 是<

    "  是”

    2008-07-01 21:41:45 補充:

    & lt; 是<

    & quot; 是”

    Source(s): 彰化高商-資處科-自己
  • 1 decade ago

    If Format(Date, ”d”)<5 Then

    MsgBox ”還有:” & DateDiff(”d”, Date, Year(Date) & ”/” & Month(Date) & ”/5”)

    ElseIf Format(Date, ”d”) = 5 Then

    MsgBox ”領錢”

    ElseIf Format(Date, ”d”) >5 Then

    MsgBox ”還有:” & DateDiff(”d”, Date, Year(Date) & ”/” & Month(Date) + 1 & ”/5”)

    End If

    記得把上面所有全型的符號 改成半型

    試看看

    Source(s): me
Still have questions? Get your answers by asking now.