用c# 做的,问题1:
在datagridview里有两列用来输入开始时间和结束时间(例如:21:46:34),怎么能在输入的时候,直接就能显示出那样的时间格式?(只要时间,不要日期。)问题2:
怎么计算开始时间和结束时间的时间差?
例如:开始时间(21:46:34),结束时间(22:46:34)如果是日期,我知道用TimeSpan 计算,可是时间好像不能啊。求助!!高手们!!!快来帮帮小女子啊!!!大恩不言谢,只能给分数了!!
在datagridview里有两列用来输入开始时间和结束时间(例如:21:46:34),怎么能在输入的时候,直接就能显示出那样的时间格式?(只要时间,不要日期。)问题2:
怎么计算开始时间和结束时间的时间差?
例如:开始时间(21:46:34),结束时间(22:46:34)如果是日期,我知道用TimeSpan 计算,可是时间好像不能啊。求助!!高手们!!!快来帮帮小女子啊!!!大恩不言谢,只能给分数了!!
string dt=starttime.ToString("hh:mm:ss");// 设置时间格式
DateTime endtime=//=====输入结束时间
TimeSpan diff=endtime.Subtract(starttime)//计算时间差
string difftime=
---diff.Hours.ToString()//按小时获得时间差
---diff.Seconds.ToString()//按秒获得时间差
1.格式问题:http://hi.baidu.com/zouqiner/blog/item/a65b95df041bad50ccbf1a91.html2.事件差问题:既然你只是要计算时间,和日期没关系,那你可以在时间前面加上一个日期啊,两个相同就可以;如果存在跨天的情况就要另外考虑了.
这是在winfrom里的,用format好像不管用啊。
在winform中famat是同样可以使用的
2楼基本正确 除了这句:
string dt=starttime.ToString("HH:mm:ss");// 设置时间格式
看看这个行不行:
使用 DateTimePicker 控件显示时间
{
//string dateDiff = "";
//if (e.ColumnIndex == 2)
//{
// if (e.RowIndex > 0)
// {
// DataGridViewRow row = this.dataGridView1.Rows[e.RowIndex];
// DataGridViewRow row2 = this.dataGridView1.Rows[e.RowIndex - 1];
// if (row != null && row2 != null)
// {
// if (row.Cells["create_date"].Value != null && row.Cells["create_date"].Value.ToString() !="")
// {
// DateTime dt1 = Convert.ToDateTime(row.Cells["create_date"].Value.ToString());
// DateTime dt2 = Convert.ToDateTime(row2.Cells["create_date"].Value.ToString());
// TimeSpan ts1 = new TimeSpan(dt1.Ticks);
// TimeSpan ts2 = new TimeSpan(dt2.Ticks);
// TimeSpan ts = ts1.Subtract(ts2).Duration();
// if (int.Parse(ts.Days.ToString()) > 0)
// {
//
// dateDiff += ts.Days.ToString() + "天";
// }
// if (int.Parse(ts.Hours.ToString()) > 0)
// {
// dateDiff += ts.Hours.ToString() + "小时";
// }
// e.Value = dt1.ToString() + " " + dateDiff; // }
// else
// {
// e.Value = row.Cells["create_date"].Value;
// }
// }
// }
//}
}