c#中的2位数字

时间:2011-11-13 11:30:56

标签: c#

需要一些帮助,我有一个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,...

我知道这个问题,这是非常合乎逻辑的,但我的问题是如何解决它:)

非常感谢。

5 个答案:

答案 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)