Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > .NET для новичков > Таймер обратного отсчета


Автор: Telsystems 5.10.2012, 10:32
Доброго дня. Нужен совет по реализации таймера обратного отсчета на C#. мне отдается время в секундах, его нужно нужно перевести в формат минуты:секунды и реализовать отсчет времени назад на текст-боксе. при остановке таймера или при окончании времени нужно перевести время назад в секунды. Делаю так:

Код

int sec, min;
DateTime limitTime = new DateTime(0, 0);
  limitTime = limitTime.AddSeconds(LimitSecondsPerDay);
  min = limitTime.Minute;
  sec = limitTime.Second;
  tbLimitTime.Text = min + ":" + sec;

private void tServiceTimer_Tick(object sender, EventArgs e)
    {           
        tbLimitTime.Text = min + ":" + sec;

        if (min == 0 && sec == 0)
        {
            tServiceTimer.Stop();
            MessageBox.Show("time is over");
        }
        else
            if (sec == 0)
            { sec = 60; min--; }
        sec--;
    }

Вопрос: Как переконвертировать время назад в секунды и можно ли реализовать такую работу таймера более правильно? 

Автор: Figoro 5.10.2012, 14:34
Код

        TimeSpan _span;
        int intervalIn = 139;

         _span = new TimeSpan(0, 0, intervalIn);
         Timer tm = new Timer();
         tm.Tick += new EventHandler(tm_Tick);
         tm.Interval = 1000;
         tm.Start();

        void tm_Tick(object sender, EventArgs e)
        {
            --intervalIn;
            if (intervalIn > 0)
                label1.Text = string.Format("{0}:{1} --> {2}",
                   _span.Minutes, _span.Seconds, intervalIn.ToString());
            else
                label1.Text = string.Format("Время закончилось: {0}:{1}", _span.Minutes, _span.Seconds);
        }

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)