【发布时间】:2021-04-09 17:53:06
【问题描述】:
股市图表上的烛台每分钟都会创建。我创建了一个倒计时计时器,告诉我距离创建下一个烛台还剩多少秒。
//logic for 1 min candlestick
const int MINUTE = 60;
int currentSecond = DateTime.UtcNow.Second;
int nextMin = MINUTE - currentSecond;
minuteLabel.Text = nextMin.ToString();
图表还可以每 5 分钟显示一次烛台,以获得不同的视角。因此,在这种情况下,每 5 分钟创建一个烛台。这就是我遇到的麻烦。如何创建倒数计时器来显示距离创建下一个烛台还剩多少时间?这是我目前所拥有的:
//inefficient logic for 5 min candlestick
int currentMinute = DateTime.UtcNow.Minute;
int nextFiveMin;
if (currentMinute >= 0 && currentMinute < 5) {
nextFiveMin = ((5 * MINUTE) - (currentMinute * MINUTE)) - currentSecond;
}
else if(currentMinute >= 5 && currentMinute < 10) {
nextFiveMin = ((10 * MINUTE) - (currentMinute * MINUTE)) - currentSecond;
}
else if (currentMinute >= 10 && currentMinute < 15) {
nextFiveMin = ((15 * MINUTE) - (currentMinute * MINUTE)) - currentSecond;
}
//etc all the way to currentMinute > 55
TimeSpan t = TimeSpan.FromSeconds(nextFiveMin);
fiverLabel.Text = t.ToString(@"mm\:ss");
虽然这段代码运行良好,但我认为可能有一种我想不到的更简单的方法来实现它。
【问题讨论】: