c#我怎样才能找到一辆车的年龄?


How do I find the age of a vehicle in months c#

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicates:
How to get difference between two dates in Year/Month/Week/Day?
Difference in months between two dates (C#, .NET)

您好!我是C的新手,当我输入注册日期时,我需要在几个月内找出一辆车的年龄。我想知道是否有人能为我指明正确的方向。谢谢


日子很容易安排,但要讨论的几个月真是太多了。

以下代码使用平均30.4(365/12)天/月。

1
2
3
4
5
TimeSpan age = DateTime.ToDay - RegistrationDate;

double months1 = age.TotalDays / 30.4;

int months = (int) months1;

但是一些业务系统将有自己的规则,可能从2011-04-30到2011-05-01将被计算为1个月。你需要一个好的定义。


请参见>两个日期之间的月份差异

这更好>如何在年/月/周/日中获得两个日期之间的差异?


一个非常粗糙的方法是,简单地从当前时间中减去注册日期,然后从天数中得到总月份:

1
2
TimeSpan age = DateTime.Now - registrationDate;
int months = (int) (age.TotalDays/30);

几年后(大约六到七年),你会有额外的几个月。以月计算并不容易,因为一个月不是一个确切的数量。我猜一辆六岁的车可能很常见,所以这可能不太适合。

一个更好的选择是直接减去年份和月份:

1
2
3
int fullYears = (now.Year - registrationDate.Year) * 12;
int partialYear = now.Month - registrationDate.Month;
int months = fullYears + partialYear;

您可以检查(DateTime.Now - registrationDate).TotalDays / 31(或30,具体取决于您如何定义月份)