在 C# WinForm 中计算存活年数 [重复]
Posted
技术标签:
【中文标题】在 C# WinForm 中计算存活年数 [重复]【英文标题】:Calculate # of Years Alive in C# WinForm [duplicate] 【发布时间】:2013-05-06 10:27:12 【问题描述】:我正努力在母亲节的早晨完成一个快速的“学习示范”计划。我为妈妈创建了一个文本框来输入我的生日,并创建了一个标签来显示她单击按钮时我还活着的年数、月数、天数和秒数。
以下是我卡住的代码部分:
private void button1_Click(object sender, EventArgs e)
DateTime sonsBirthday = DateTime.Parse(txtSonsBirthday.Text).Date;
DateTime now = DateTime.Now;
TimeSpan timeSpan = now - sonsBirthday;
timeSpan = Convert.TimeSpan(lblTimeAlive); // blue squiggly under TimeSpan here
正如我在代码中评论的那样,我在最后一行的TimeSpan
下得到了一个蓝色波浪线;但我不明白为什么。我做错了什么?
我只是一名学生:所以我有这个概念,但不习惯日期时间格式,需要一点帮助。
【问题讨论】:
这是一个有创意的母亲节礼物! 我认为你可能在逻辑上倒退了最后一行。您不想将timeSpan = now - sonsBirthday
的文本表示分配给lblTimeAlive.Text
吗?
这是正确的,我想解析它的标签,我得到以下异常:错误1'System.Convert'不包含'TimeSpan'的定义
您的意思是这样做:lblTimeAlive.Text = timeSpan.ToString();
?这会在标签中显示总存活时间。
@KenWhite:您建议的消息是 Sprint 2 的一项功能;这也是他所学到的渐进式精细化和敏捷开发的证明。 ;)
【参考方案1】:
试试这样的:
private void button1_Click(object sender, EventArgs e)
DateTime sonsBirthday = DateTime.Parse(txtSonsBirthday.Text).Date;
DateTime now = DateTime.Now;
TimeSpan timeSpan = now - sonsBirthday;
//timeSpan = Convert.TimeSpan(lblTimeAlive); // old
lblTimeAlive.Text = timeSpan.ToString(); // new
然后微调timeSpan
的字符串格式。
【讨论】:
谢谢!那个人在纠缠我做作业(发誓不是!)我只是想为母亲节创建一个程序!谢谢你的帮助。我现在可以做我想做的所有其他事情。 @JeffOrris:没问题。就像我经常说的,如果是为了你的作业,那是你的损失。这个想法不是要学习在你作为学生使用的特定语言/API/框架中有意义的细节,而是要学习如何批判性思考和如何学习——通过某些改变来茁壮成长,这些改变将取代细节新的。不过,我会相信你的话。 ;) 不幸的是,“最后一步”是不可能的。一年不是一个固定的时间段,它还取决于您使用的日历。以上是关于在 C# WinForm 中计算存活年数 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
Visual Studio c# winform打开链接[重复]