c# datagridview 列格式

mynameissue 2012-05-21 09:54:43
用c# 做的,

问题1:
在datagridview里有两列用来输入开始时间和结束时间(例如:21:46:34),怎么能在输入的时候,直接就能显示出那样的时间格式?(只要时间,不要日期。)

问题2:
怎么计算开始时间和结束时间的时间差?
例如:开始时间(21:46:34),结束时间(22:46:34)

如果是日期,我知道用TimeSpan 计算,可是时间好像不能啊。

求助!!高手们!!!快来帮帮小女子啊!!!大恩不言谢,只能给分数了!!
...全文
245 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
mynameissue 2012-05-22
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]

引用 6 楼 的回复:

这是在winfrom里面的。关键是在datagridview里输入时间时,怎么能让输入时,就形成时间格式?

最好是,客户只需要输入数字,就能自动用“:”来分割,形成时间格式。


看看这个行不行:
使用 DateTimePicker 控件显示时间
[/Quote]
我不是要让客户选择时间,而是输入时间,光要时间!
类似于行程表,例如:07:30:00要上班。
mynameissue 2012-05-22
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]

、一般情况下是不用客户去输,而是让他去选择,那么这时候就需要js datapacker了

建议尝试:DateTimePacker,这个控件-->所有控件,第12个
[/Quote]

我要做的是让客户输入时间的。类似于行程表,例如:07:30:00要上班。
熙风 2012-05-22
  • 打赏
  • 举报
回复
列表显示时间差

   private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{


//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;
// }
// }
// }
//}
}
xb12369 2012-05-22
  • 打赏
  • 举报
回复
、一般情况下是不用客户去输,而是让他去选择,那么这时候就需要js datapacker了

建议尝试:DateTimePacker,这个控件-->所有控件,第12个
juner77617 2012-05-22
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

这是在winfrom里面的。关键是在datagridview里输入时间时,怎么能让输入时,就形成时间格式?

最好是,客户只需要输入数字,就能自动用“:”来分割,形成时间格式。
[/Quote]

看看这个行不行:
使用 DateTimePicker 控件显示时间
juner77617 2012-05-22
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

引用 1 楼 的回复:

格式设置肯定有相关的Format,学会用MSDN


这是在winfrom里的,用format好像不管用啊。
[/Quote]

在winform中famat是同样可以使用的
2楼基本正确 除了这句:
string dt=starttime.ToString("HH:mm:ss");// 设置时间格式
mynameissue 2012-05-22
  • 打赏
  • 举报
回复
这是在winfrom里面的。关键是在datagridview里输入时间时,怎么能让输入时,就形成时间格式?

最好是,客户只需要输入数字,就能自动用“:”来分割,形成时间格式。
mynameissue 2012-05-22
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

格式设置肯定有相关的Format,学会用MSDN
[/Quote]

这是在winfrom里的,用format好像不管用啊。
test2050 2012-05-21
  • 打赏
  • 举报
回复
学会自己查资料,这些问题都能自己解决掉。
Hatake 2012-05-21
  • 打赏
  • 举报
回复
google的资料:
1.格式问题:http://hi.baidu.com/zouqiner/blog/item/a65b95df041bad50ccbf1a91.html

2.事件差问题:既然你只是要计算时间,和日期没关系,那你可以在时间前面加上一个日期啊,两个相同就可以;如果存在跨天的情况就要另外考虑了.
瑞卡哥哥 2012-05-21
  • 打赏
  • 举报
回复


DateTime starttime=//输入开始时间
string dt=starttime.ToString("hh:mm:ss");// 设置时间格式
DateTime endtime=//=====输入结束时间
TimeSpan diff=endtime.Subtract(starttime)//计算时间差
string difftime=
---diff.Hours.ToString()//按小时获得时间差
---diff.Seconds.ToString()//按秒获得时间差
zhujiawei7 2012-05-21
  • 打赏
  • 举报
回复
格式设置肯定有相关的Format,学会用MSDN

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧