2014-02-12 81 views
0

我在我的應用程序中製作鬧鐘,代碼要求我從組合框中將變量int設置到我的程序中。標籤顯示整數

if ((e.Result.Text == "set a alarm") || (e.Result.Text == "set an alarm")) 
     { 
      Jarvis.Speak("setting alarm"); 
      label2.Content = DateTime.Today.Hour.ToString(HourAlarmCB) + ":" + DateTime.Today.Minute.ToString("54") + ":" + DateTime.Today.Second.ToString("00"); 
      label2.Opacity = 100; 
      dispatcherTimer2.Start(); 
     } 

的HourAlarmCB是在它的「1」,「2」等內容,但誤差不會允許我使用的ToString組合框,有沒有解決這個辦法?

回答

0

所以,最終的結果是我不得不在HourAlarmCB變量爲一個字符串

if ((e.Result.Text == "set a alarm") || (e.Result.Text == "set an alarm")) 
     { 
      Jarvis.Speak("setting alarm"); 
      string HourAlarmStr = HourAlarmCB.SelectedItem.ToString(); 
      label2.Content = DateTime.Today.Hour.ToString(HourAlarmStr) + ":" + DateTime.Today.Minute.ToString("54") + ":" + DateTime.Today.Second.ToString("00"); 
      label2.Opacity = 100; 
      dispatcherTimer2.Start(); 
     } 
0

我相信你可能不正確地利用的ToString()

您是否試圖檢索以下格式化結果?

hh:mm:ss 

如果是的話,你可能會發現這種方法值得考慮:

int hour = Convert.ToInt32(HourAlarmCB.SelectedItem); 
int minute = DateTime.Today.Minute; 
int second = DateTime.Today.Second; 
label2.Content = String.Format("{0:D2}:{1:D2}:{2:D2}", hour, minute, second); 

轉換的變量的任意list合併成一個格式化的字符串,見String.Format

有關"D2"的說明,請參見Standard Numeric Format Strings


更新:「被設置爲今天的日期,設置爲00:00:00的時間組件對象」首先,請注意DateTime.Today回報現在

,參考你的問題,輸出AMPM,使用t standard format string

DateTime date = DateTime.Today; // time is '00:00:00' 
int hour = Convert.ToInt32(HourAlarmCB.SelectedItem); 
int minute = date.Minute; // always '0' 
int second = date.Second; // always '0' 

label2.Content = String.Format("{0:D2}:{1:D2}:{2:D2} {3:t}", 
    hour, minute, second, date); // for example: '08:00:00 AM' 
+0

烏姆我做類似的東西,那是我的舊代碼,並從那時起,我改變很多。但是你知道爲什麼時間「tt」會返回「P2」而不是「PM」? –