試試這個。現在,您是否在另一行上進行了字符串轉換,以便更好地確定在第一次謊言中是否有錯誤。
var calculated_start_time = new DateTime(today.Year, today.Month,
today.Day, Convert.ToInt16(start_time_array[0]),
Convert.ToInt16(start_time_array[1]), 00);
string time = calculated_start_time.ToString("HH:mm");
但是,這並不完全清楚你想要完成什麼。如果我理解正確,以下是您可能需要考慮的選項。設置日期時間選擇器只顯示時間https://msdn.microsoft.com/en-us/library/ms229631.aspx
timePicker.Format = DateTimePickerFormat.Time;
然後,我覺得有以下應該工作,但我現在不能測試。
string dateTimeYouWant = DateTime.Today.Add(DateFromTimePicker.TimeOfDay);
您甚至可能不需要做任何事情,因爲DateFromTimePicker可能已經基於今天,但我不確定。
========編輯=====
你需要知道的事情。
- 要獲得從dateTimePicker的,你應該使用.value的,而不是。文本價值,.value的將返回一個DateTime,這就是你要使用的東西。
- 要獲得「今日」,您應該使用DateTime.Today而不是DateTime.Now。 DateTime.Today將會將分鐘,小時等設置爲零。
- 如果你是新手,我會避免使用var,並會給出真正的類型。
現在讓我們來看看你的代碼
var start_time = dateTimePicker1.Text;
var start_time_array = start_time.Split(':');
var today = DateTime.Now;
var trailer_count = Convert.ToInt32(tbTrailer_Needed.Text);
var minutes_apart = Convert.ToDouble(tbTime_Between.Text);
var calculated_start_time = new DateTime(today.Year, today.Month,
today.Day, Convert.ToInt16(start_time_array[0]),
Convert.ToInt16(start_time_array[1]), 00);
讓我們去掉那些2線是對你的問題沒有影響
var start_time = dateTimePicker1.Text;
var start_time_array = start_time.Split(':');
var today = DateTime.Now;
var calculated_start_time = new DateTime(today.Year, today.Month,
today.Day, Convert.ToInt16(start_time_array[0]),
Convert.ToInt16(start_time_array[1]), 00);
你想通過它來取代所有的代碼:
DateTime calculated_start_time = DateTime.Today.Add(dateTimePicker1.Value.TimeOfDay);
,並使其更好地配置您的DateTimePicker(在窗體或屬性編輯器的初始化),這樣用戶傾斜選擇一個日期,但只有時間:
dateTimePicker1.Format = DateTimePickerFormat.Time;
dateTimePicker1.ShowUpDown = true;
嘗試'的ToString(「HH:MM: ss「)' –
這給了我最後一行代碼的錯誤。 – Booney440
請檢查這個答案http://stackoverflow.com/questions/5593686/make-datetimepicker-work-as-timepicker-only-in-winforms –