2016-10-13 111 views
-2

在下面的代碼中,而不是當前的系統時間,我想從datetime.now().tostring()減去5分鐘作爲整數I.因此,警告可以在系統時間與labeltext1中的時間匹配之前5分鐘播放。如何從「DateTime」值中減去一定數量的分鐘?

private void timer1_Tick(object sender, EventArgs e) 
{ 
    label_time1.Text = DateTime.Now.ToString(); 
    mplayer = new SoundPlayer(); 
    mplayer.SoundLocation = (@"c:\users\woolsvalley\documents\visual studio 2015\Projects\WindowsFormsApplication17\WindowsFormsApplication17\Alarm.wav"); 
    if ((DateTime.Now.ToString("hh:mm tt") == ((textBox_ordertostart.Text)))) 
    { 
     mplayer.Play(); 
     pbuilder.ClearContent(); 

     pbuilder.AppendText("Order time for" + "" + comboBox_suburb.SelectedValue + "Start in" + 5 + "minutes"); 
     txt2speech.Speak(pbuilder); 
    } 
} 
+4

所以這是一個有關從日期時間減去問題?請專注於此,並放棄任何與「文本到語音」有關的任何事情。 – musefan

+0

'DateTime.Now.AddMinutes(-i)' –

+0

使用計時器讓事情在預定時刻發生是一種不好的做法。即使不使用SoundPlayer,也正在初始化SoundPlayer。 – CodeCaster

回答

2

您可以按照以下減去DateTimeTimeSpan,:

DateTime fiveMinutesAgo = DateTime.Now - new TimeSpan(0,5,0); 
+1

另一種方法是'DateTime.Now.AddMinutes( - 5)'有些人可能會發現更容易閱讀 –

+0

當我做DateTime.Now.AddMinutes(5)它的作品,但是當我使用DateTime.Now.AddMinutes(-5)它不,這就是問題... –

+0

GWLlosa拋出異常的時間跨度:增加或減少的值會導致無法表示的DateTime。 –