在C#中控件是很有好的,但是有一些控件使用起來有一點不方便, DateTimePicker控件用着很方便,但是要根據自己的需要取值還是不那麼容易.
本人在做畢業設計時,要用DateTimePicker控件取日期,插入到一個DateTime屬性的ACCESS表的列中,同時要把兩個取值相差得出天數,插入到一個數據型列中,但是在編寫過程中總是出錯,我的代碼如下:
string flag1 = DB.insert(instr1);
if ( flag1 == "1")
{
MessageBox.Show("考勤登記成功!");
}
else
{
MessageBox.Show("考勤登記失敗!");
}
但是系統總是提示INSERT INTO語句出錯,無法把一個無限長的數據轉換成整型.怎麼回事呢?
有MESSAGEBOX把instr1的值給顯示了一下,發現兩個dataTimePicker相減的值爲:天數 00:00:00 ,怪不得會出錯,於是我的原代碼中的dateTimePicker1.value.Date-dateTimeRicker2.Value.Date改變爲(dateTimePicker2.Value.Date - dateTimePicker1.Value.Date).Substring (0,2),則執行成功了!於的我把DateTimePicker的用法總結如下:
dateTimerPicker1.Value 獲取所選擇的日期/時間
dateTimerPicker1.Text 獲取控件顯示的"XXXX年XX月XX日"
dateTimerPicker1.Value.Date 獲取當前控件把選取的短日期
這些都是常用的,其他的屬性可以查看MSDN上面的說明,對了,要獲取兩個日期控件相差的值,也就是兩個日期的相差天數,代碼應如下寫:(dateTimePicker2.Value.Date - dateTimePicker1.Value.Date).Substring (0,2)。
這些都是我個人的一些心得,寫出來與大家共享,不足之處望大家批評指正!
剛剛有一位老兄給我發表評論,令我如提壺灌頂,他的方法確實很好用,在此多謝了!現在總結如下:
DateTime oldDate = dateTimePicker1.Value.Date ;
DateTime newDate = dateTimePicker2.Value.Date ;
textBox1.Text = oldDate.ToString();
textBox2.Text = newDate.ToString();
System.TimeSpan ts = newDate.Subtract(oldDate);
textBox3.Text = ts.Days.ToString()+"天";
便可獲得兩個dateTimePicker控件的相差的天數,如要獲得其他信息,代碼如下:
小時: ts.Hours.ToString() + "時";
分鐘: ts.Minutes.ToString() + "分";
秒: ts.Seconds.ToString() + "秒";