接近重复
有人知道 VB.NET 或 C# 中的函数如何获取两个日期、计算差异并以英文字符串输出该差异吗?例如,如果我传递日期“3/10/2009”和“3/25/2009”,该函数将返回字符串“15 Days”,或者如果我传递日期“3/10/2005”和“3/” 15/2007',该函数将返回“2 年零 5 天”
最佳答案
使用DateDiff VB.NET 中的函数
这里有一些代码可以给你年、月和日:
Dim Date1 = Date.Parse("1/10/2008")
Dim Date2 = Date.Parse("3/25/2009")
Dim Years = DateDiff(DateInterval.Year, Date1, Date2)
If Years > 0 Then
Date1 = Date1.AddYears(Years)
End If
Dim Months = DateDiff(DateInterval.Month, Date1, Date2)
If Months > 0 Then
Date1 = Date1.AddMonths(Months)
End If
Dim Days = DateDiff(DateInterval.Day, Date1, Date2)
Console.WriteLine("{0} years, {1} months, {2} days", Years, Months, Days)
输出: 1年2个月15天
您可以添加更多逻辑,以便仅在每个跨度不为零时有条件地显示每个跨度,并且还可以使用年或年、月或月以及日或日,但此代码应该让您朝着正确的方向前进。
关于c# - 英文日期差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/979468/