这段代码缺点什么 ? 这段代码执行结果是:一直显示为:0小时0分,原因是你的time变量定义的位置不对。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 楼上说得没错。再说你的time变量的数据类型也有问题。应该这样:DateTime t1 = DateTime.Now; //取得开始时间//执行某些功能DateTime t1 = DateTime.Now; //取得结束时间TimeSpan t0 = t2 - t1; //取得时间差//取得时间差的小时数和分钟数(秒数)toolLbl_time.Text = t0.Hours.ToString()+" hours "+t0.Minutes.ToString()+" min";还有一种方法:TimeSpan ts1 = new TimeSpan(DateTime.Now.Ticks); 参见:http://hi.baidu.com/%B5%C8%B4%FD%D4%B6%B7%BD/blog/item/73bcbb3d1f2ba80abba16719.html 问题出在int time = 0,不应该定义在timer中,这样每执行一次time都会被清0。解决建议,可以将time变量提到timer外面 问题出在int time = 0,不应该定义在timer中,这样每执行一次time都会被清0。解决建议,可以将time变量提到timer外面 问题出在int time = 0,不应该定义在timer中,这样每执行一次time都会被清0。解决建议,可以将time变量提到timer外面 执行后,初始为默认值全局变量等web session等保存 每次执行定时器,time初始为0. 补充说明……本身计算就有问题,hour值为time/3600 没错,但是Minute值为time/60,这明显是不对的。加减乘除不用再教你了吧,自己好好看看吧。 每次time都先赋值0,当然不行了。把time放到timer1_Tick()外,用全局变量 public static int time = 0; private void timer1_Tick(object sender, EventArgs e) { time = time +1; } int time = 0; int Hour = time / 3600; int Minute = time / 60;则 time = 0; Hour = 0; Minute = 0; 应该使用stopwatch ,timer计时是不精确的! 把time定义放到外面 就是定义成全局变量还有就是你处理一下显示当>1小时时显示 :{0}小时{1}分钟 小于一小时时只显示 分钟和秒 这样效果好点 int time = 0;int Minute = time / 60;以上两句很有问题:第一句我不说了,第二句:if(time/60>=60){ //m没可能超过60吧}else{} time控件计算不精确,更多的是用来表示桢而且每个单位时间间隔都要计算一次,500个用户每个单位时间就要算500次,占资源太多直接用结束时间-开始时间好了 C#通过socket发送结构体 xslt格式化数据 求 winform 下用textbox实现类似百度搜索提示的代码 C#函数并行问题 如何用UDP协议传送文件? vs2008开发的程序依赖性问题 Thread的一个简单问题,有答案马上结帖 sql server与c# 一个小问题,搞了一个晚上,汗死.请高手指点迷津!!! 请教一下各位达人:事件和委托是什么关系啊? 请问怎么把某个板块的精华区和已解决问题下载到本地离线浏览? C# 如何 使用CORBR与C++通信有人做过吗,跪求 为什么我的VS2008里面不能添加新的WINDOWS窗体模板啊?
toolLbl_time.Text = t0.Hours.ToString()+" hours "+t0.Minutes.ToString()+" min";还有一种方法:
TimeSpan ts1 = new TimeSpan(DateTime.Now.Ticks);
参见:
http://hi.baidu.com/%B5%C8%B4%FD%D4%B6%B7%BD/blog/item/73bcbb3d1f2ba80abba16719.html
解决建议,可以将time变量提到timer外面
解决建议,可以将time变量提到timer外面
解决建议,可以将time变量提到timer外面
全局变量等
web session等保存
本身计算就有问题,hour值为time/3600 没错,但是Minute值为time/60,这明显是不对的。
加减乘除不用再教你了吧,自己好好看看吧。
每次time都先赋值0,当然不行了。把time放到timer1_Tick()外,用全局变量 public static int time = 0; private void timer1_Tick(object sender, EventArgs e)
{
time = time +1;
}
int time = 0;
int Hour = time / 3600;
int Minute = time / 60;
则 time = 0;
Hour = 0;
Minute = 0;
还有就是你处理一下显示当>1小时时显示 :{0}小时{1}分钟 小于一小时时只显示 分钟和秒 这样效果好点
int Minute = time / 60;
以上两句很有问题:
第一句我不说了,
第二句:
if(time/60>=60)
{
//m没可能超过60吧
}
else
{}