none
倒數計時的條件判斷要怎麼寫??? RRS feed

  • 問題

  • 各位好,我正在寫一個鬧鐘的程式。
    作用是user可以在form上設定好日期時間,當設定的時間到了的時候,就秀出message,如:該休息囉!
    但是我想破頭,就是想不出條件判斷式要怎麼寫才好,請各位幫個忙,謝謝!

    Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Timer1.Interval = 10
    Timer1.Start()
    End Sub

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    TextBox1.Text = Now
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    '抓取使用者設定的關機時間
    Dim d, b, h, r, m, s, t1 As String
    Dim t2 As Date
    d = DateTimePicker1.Value.Date
    b = ComboBox1.Text '選擇為:"上午"或"下午"
    h = ComboBox2.Text '"時"的選單,範圍為:01~12
    r = Label4.Text '值為:":"
    m = ComboBox3.Text '分的選單,範圍為:01~59
    s = Label5.Text '值為:":00"。此控制項的visible為:False
    t1 = d + b + h + r + m + s
    t2 = CDate(t1)

    '條件判斷
    '這邊要怎麼寫才好呢???
    Msgbox("該休息囉!")

    End Sub
    End Class
    2007年7月9日 上午 11:07

解答

  • 最簡單的方法,使用 DateTime.Now.CompareTo(Me.DateTimePicker1.Value) 就行了。

    如果傳回值為 0,表示時間到。

    如果傳回值是 >0,表示超過時間了。

    如果傳回值是 <0,表示時間還沒到。

    2007年7月9日 上午 11:25
    版主

所有回覆

  • 最簡單的方法,使用 DateTime.Now.CompareTo(Me.DateTimePicker1.Value) 就行了。

    如果傳回值為 0,表示時間到。

    如果傳回值是 >0,表示超過時間了。

    如果傳回值是 <0,表示時間還沒到。

    2007年7月9日 上午 11:25
    版主
  • 請問我在條件判斷式裡寫DateTime.Now.CompareTo(Me.DateTimePicker1.Value)之後,

    我該如何接收傳回的值呢?上面這行程式是拿什麼東西和DateTImePicker1.Value做比較呢?

    謝謝!

    2007年7月10日 上午 06:04
  • 你只要看 DateTime.Now.CompareTo(Me.DateTimePicker1.Value) 的傳回值就可以了。

     

    例如:

     

    Code Snippet

    If DateTime.Now.CompareTo(Me.DateTimePicker1.Value) > 0 Then

    ....
     elseif DateTime.Now.CompareTo(Me.DateTimePicker1.Value) = 0 Then

    ....

    else

    ...

    end if

     

     

    2007年7月10日 上午 06:35
    版主
  • 喔喔!我大概懂您的意思了…

    DateTime.Now是指現在系統的時間,而DateTimePicker1.Value是指使用者選擇的時間。

    如果傳回值為 0,表示時間到。

    如果傳回值是 >0,表示超過時間了。

    如果傳回值是 <0,表示時間還沒到。

     

    那我有個疑問,當我按下button1時,就是啟動計時器來比較,

    但我是不是要再多設一個Timer來協助計時呢?

    我不懂的是,當我按下button1的一瞬間,就會比較DateTime.Now.CompareTo(Me.DateTimePicker1.Value)?

    那是這樣的話,鬧鐘永遠都不會有動作耶!除非我一定要在我所設定的那一時間點按下button1...

    2007年7月10日 上午 06:56
  • 不好意思,謝謝您的提醒,我已經成功了。
    2007年7月10日 上午 07:18