显示标签和进度条中的剩余时间

编程入门 行业动态 更新时间:2024-10-10 05:17:04
本文介绍了显示标签和进度条中的剩余时间的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我的功能从早上8点开始,到早上8:45结束。该功能显示我们在该时间段内的剩余时间。如何在进度条中显示进度? 这是我到目前为止:

I have a function that starts at 8am and ends at 8:45 am. That function displays the remaining time when we are in that time period. How could I display the progress in the progress bar? Here is what I have so far:

private void timerPeriods_Tick(object sender, EventArgs e) { DateTime date_time_now = DateTime.Now; //Period 1 8:00 - 8:45AM DateTime date_time_Period1End = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 08, 45, 0); //Remaining time to end of period 1 TimeSpan time_span = date_time_Period1End - date_time_now; //conditions if (date_time_Period1End > date_time_now) { //Progress bar ? string time = string.Format("{0:00}:{1:00}:{2:00}", time_span.Hours, time_span.Minutes, time_span.Seconds); lblP1CountDown.Text = "Left: " + time; } else { lblP1CountDown.Text = "Done"; }

推荐答案

假设你的计时器是System.Windows.Forms.Timer; Assuming that your timer is System.Windows.Forms.Timer ; var timerPeriods = new Timer(); timerPeriods.Interval = 1000; timerPeriods.Tick += timerPeriods_Tick; timerPeriods.Start(); progressBar1.Maximum = 2700; // for 45 min

void timerPeriods_Tick(object sender, EventArgs e) { var curTime = DateTime.Now.TimeOfDay; var refTime1 = new TimeSpan(8, 0, 0); var refTime2 = new TimeSpan(8, 45, 0); if (curTime >= refTime1 && curTime <= refTime2) { var tsleft = refTime2.Subtract(curTime); lblP1CountDown.Text = tsleft.ToString(@"hh\:mm\:ss"); progressBar1.Value++; } else { lblP1CountDown.Text = "Done"; (sender as Timer).Stop(); } }

更通用的方法,如果你在两者之间启动计时器时间段不在refTime1之前;

More generic way, if you start timer between time period not before refTime1 ;

var timerPeriods = new Timer(); timerPeriods.Interval = 1000; timerPeriods.Tick += timerPeriods_Tick; timerPeriods.Start(); progressBar1.Maximum = 100;

void timerPeriods_Tick(object sender, EventArgs e) { var curTime = DateTime.Now.TimeOfDay; var refTime1 = new TimeSpan(8, 0, 0); var refTime2 = new TimeSpan(8, 45, 0); if (curTime >= refTime1 && curTime <= refTime2) { var tsleft = refTime2.Subtract(curTime); lblP1CountDown.Text = tsleft.ToString(@"hh\:mm\:ss"); progressBar1.Value = 100 - (int)( tsleft.TotalSeconds * 100 /refTime2.Subtract(refTime1).TotalSeconds); } else { lblP1CountDown.Text = "Done"; (sender as Timer).Stop(); } }

更多推荐

显示标签和进度条中的剩余时间

本文发布于:2023-11-27 13:15:03,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1638226.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:剩余时间   进度条   标签

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!