需要一些帮助,我有一个TextBlock,其中包含一个像这样的字符串00:00:00而且我想创建一个计时器,每秒计算一次,例如:00:00:01,00:00,等等
所以我做的蠢事就是取文本框的值
string[] times = myTextbox.Text.Split(':');
int hours = Int32.Parse(times[0]);
int minutes = Int32.Parse(times[1]);
int seconds = Int32.Parse(times[2]);
然后我增加正确的变量,最后我再次加入它们并将它们放回文本块中,但现在我的计数器是这样的:0:0:1,0:0:2,...
我知道这个问题,这是非常合乎逻辑的,但我的问题是如何解决它:)
非常感谢。
答案 0 :(得分:8)
string displayString = String.Format("{0:00}:{1:00}:{2:00}",
hours, minutes, seconds);
:
之后的部分是格式说明。 00
表示始终使用至少两个位置,并将空位置显示为0。
答案 1 :(得分:7)
当您“再次加入”时,请在每个整数上使用.ToString("00")
来获取两位数。或者,请在此处查看使用TimeSpan。
答案 2 :(得分:4)
不是分割文本框的文本,而是使用DateTime.Parse,如下所示:
var time = DateTime.Parse(myTextBox.Text);
然后添加第二个:
time = time.AddSeconds(1);
然后最后,把它放回去:
myTextBox.Text = time.ToString("myPattern");
其中myPattern被替换为此处描述的任何模式:http://www.geekzilla.co.uk/View00FF7904-B510-468C-A2C8-F859AA20581F.htm
答案 3 :(得分:1)
以下从TextBox
获取字符串,添加1秒并返回结果字符串(包括正确的包裹数分钟/小时):
myTextbox.Text = TimeSpan.FromSeconds ( TimeSpan.Parse ( myTextbox.Text ).TotalSeconds + 1 ).ToString ( "c" );
一条评论 - 如果TextBox
可编辑且可能包含错误数据,则需要添加异常处理...
对于某些参考文献,请参阅:
答案 4 :(得分:1)
TimeSpan span = DateTime.Now.Subtract(startTimeOfTimer);
int Totalsec = span.Seconds;
int seconds = Totalsec % 60;
int minutes = span.Minutes;
int hour = span.Hours;
string Elapsedtime = string.Format("{0:00}:{1:00}:{2:00}",hour, minutes, seconds); that will output hour:min:sec as 00:00:00(two digit number)