C# Formatting TimeSpan to show a date
我正在研究一个简单的程序,它计算会员的年龄,并根据年龄应用正确的会员费。
1 2 3 4 5 6 7 8
| public static DateTime DateTime ()
{
DateTime birth = new System.DateTime(1991, 9, 20);
DateTime today = new System.DateTime(2017, 1, 22);
TimeSpan age = today - birth ;
Console .WriteLine(age );
return birth ;
} |
这是我使用的代码,我的返回值是
号
如何将其解析为更可读的YYYY、MM、DD格式?
- 这种格式对时间跨度没有意义。
- 你到底想展示什么?
- 如果你需要大多数人所理解的"年龄"——满岁的人还活着——你可以使用stackoverflow.com/questions/9/…,这样只需几年就可以得到结果。
- 我正在寻找一个更好的解决方案来找出从那以后的天数。
使用nodatime
1 2 3 4 5 6 7
| var ld1 = new LocalDate (1991, 9, 20);
var ld2 = new LocalDate (2017, 1, 22);
var period = Period .Between(ld1, ld2 );
Debug .WriteLine(period .Years);
Debug .WriteLine(period .Months);
Debug .WriteLine(period .Days); |
号
正如乔恩·斯基特所说:
TimeSpan has no sensible concept of"years" because it depends on the
start and end point.
号
你为什么不试试他的诺达时间?
您可以在此处手动下载
你也可以除以365.25(一年中的平均天数),得到整数。
1
| Convert.ToInt32(age.Days / 365.25); |
- 当您没有任何内容可以从另一个问题添加到现有答案中时,以重复方式投票是更好的选择。
- 编辑以添加一点到答案中。