c#中的2位数

本文关键字:2位数 中的 | 更新日期: 2023-09-27 18:14:30

我需要一些帮助,我有一个TextBlock,其中包含一个字符串像这样的00:00:00,我想创建一个计时器,将计数每秒钟,例如00:00:01,00:00:02等

那么我做的愚蠢的事情就是取文本框

的值
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,…

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

c#中的2位数

string displayString = String.Format("{0:00}:{1:00}:{2:00}", 
 hours, minutes, seconds);

:后面的部分为格式说明。00表示始终使用至少两个位置,并将空位置显示为0。

当您"再次加入它们"时,对每个整数使用.ToString("00")以获得两位数字。或者,在这里使用TimeSpan。

我将使用DateTime代替分割文本框的文本。解析如下:

var time = DateTime.Parse(myTextBox.Text);

然后添加第二个:

time = time.AddSeconds(1);

最后,把它放回去:

myTextBox.Text = time.ToString("myPattern");

,其中myppattern被替换为这里描述的任何模式:http://www.geekzilla.co.uk/View00FF7904-B510-468C-A2C8-F859AA20581F.htm

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)

下面从TextBox中获取字符串,添加1秒并返回结果字符串(包括正确的分钟/小时):

myTextbox.Text = TimeSpan.FromSeconds ( TimeSpan.Parse ( myTextbox.Text ).TotalSeconds + 1 ).ToString ( "c" );

一个注释-你需要添加异常处理以防TextBox是可编辑的,可能包含错误的数据…

一些参考文献参见:

  • http://msdn.microsoft.com/en-us/library/system.timespan.aspx
  • http://msdn.microsoft.com/en-us/library/system.timespan.fromseconds.aspx
  • http://msdn.microsoft.com/en-us/library/se73z7b9.aspx
  • http://msdn.microsoft.com/en-us/library/ee372286.aspx