- Home /
C# Digital Timer
Hi I have two timers in my game. One of them is real time, and the other one is 33% faster.
At the moment the timer appears in seconds, but i would like them to be as a digital clock ( hh::mm:ss)
here is the code I have so far :
using UnityEngine; using System.Collections; using UnityEngine.UI;
public class TimeManager : MonoBehaviour {
private bool timersMayRun = false;
public Text RealTimeTimerTextfield;
public Text FastTimeTextfield;
private float RealtimeTimer;
private float FastTimeTimer;
public void Update(){
if (timersMayRun) {
RealtimeTimer = RealtimeTimer + Time.deltaTime;
FastTimeTimer = FastTimeTimer + Time.deltaTime * 1.33f;
//RealTimeTimerTextfield.text = "" + RealtimeTimer;
FastTimeTextfield.text = "" + FastTimeTimer;
}// if if timerwaurun;
}// timer
public void StartTimers(){
timersMayRun = true;
}// end startTimer method;
public void PauzeTimers(){
timersMayRun = false;
}// end startTimer method;
}
Answer by Graham-Dunnett · Jun 21, 2015 at 05:52 PM
I am amazed that your google searching didn't come up with an answer. Anyway:
a) Divide you time by 60 and convert result into a float. b) Multiply the fractional part by 60 and that's seconds. c) Subtract the fractional part. d) Duplicate a-c again and that's minutes. e) What's left is hours.
So 3723, divided by 60 is 62.05. 0.05*60 is 3, so 3 seconds. 62/60 is 1.033333, 0.03333333 * 60 is 2. Leaves 1. So you have 01:02:03.
However, I think it's easier to do the work as the time increases. Have a variable called seconds, which you add time to each frame. When seconds is greater than 60, subtract 60 from seconds, and add 1 to minutes. If minutes > 60 subtract 60 from minutes and add 1 to hours.
Answer by Flightkick · Jun 21, 2015 at 05:56 PM
You can use the String.Format() method:
private string SecondsToHhMmSs(int seconds)
{
return string.Format("{0:00}:{1:00}:{2:00}",seconds/3600,(seconds/60)%60,seconds%60);
}
Your answer
Follow this Question
Related Questions
Certain timers run too fast 1 Answer
Timer limits 0 Answers
Total Time Played since Installation 2 Answers
Why will this timer not count down? 1 Answer
Accumulating deltaTime oddity 1 Answer