C# c中的2位数字#

C# c中的2位数字#,c#,C#,A需要一些帮助,我有一个文本块,其中包含一个像这样的字符串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]); 然

A需要一些帮助,我有一个文本块,其中包含一个像这样的字符串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

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

非常感谢。

当您“再次加入他们”时,在每个整数上使用
.ToString(“00”)
获得两位数字。或者,在这里查看使用时间跨度

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

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

我将使用DateTime而不是拆分文本框的文本。如下解析:

var time = DateTime.Parse(myTextBox.Text);
然后添加第二个:

time = time.AddSeconds(1);
最后,把它放回去:

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

其中,myPattern被替换为此处描述的任何模式:

以下内容从
文本框中提取字符串,添加1秒并返回结果字符串(包括分钟/小时的正确换行):

一句话-如果
TextBox
可编辑且可能包含错误数据,则需要添加异常处理

有关一些参考资料,请参见:


我使用TimeSpan创建计时器,因此我认为TimeSpan将具有一些格式化属性,对吗?我会搜索它,谢谢你的答案。@Andrew是的,TimeSpan有你想要的格式字符串(解析和ToString),这是最正确的答案,就像DateTime一样处理:)我会使用你的答案,谢谢…你的答案是最好的,因为我将字符串作为DateTime处理,但你有一个错误。AddSeconds方法返回一个新的System.DateTime,因此它可能是这样的:
time=time.AddSeconds(1)Woops,没错。再次阅读你的问题让我意识到你可能真的想利用TimeSpan类而不是DateTime——在我看来,你更感兴趣的是时间的流逝,而不是一个时间点。这完全取决于你想表现什么。
myTextbox.Text = TimeSpan.FromSeconds ( TimeSpan.Parse ( myTextbox.Text ).TotalSeconds + 1 ).ToString ( "c" );
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)