这段代码缺点什么 ?
private void timer1_Tick(object sender, EventArgs e){
#region 时间设置
int time = 0;
int Hour = time / 3600;
int Minute = time / 60;
time++;
toolLbl_time.Text ="在线时间:{0}小时{1}分钟", Hour.ToString(), Minute.ToString();
#endregion
}
--------------------编程问答-------------------- 这段代码执行结果是:一直显示为:0小时0分,原因是你的time变量定义的位置不对。 --------------------编程问答-------------------- 楼上说得没错。再说你的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次,占资源太多
直接用结束时间-开始时间好了 --------------------编程问答-------------------- 你的time表示什么? --------------------编程问答-------------------- 全局变量
补充:.NET技术 , C#