任何人都知道如何在VB.NET或C#中使用两个日期,计算差异并输出英文字符串中的差异?例如,如果我传递日期'3/10/2009'和'3/25/2009',函数将返回字符串“15 Days”或者如果我传递日期'3/10/2005'和'3 / 15/2007',该功能将返回“2年,5天”
答案 0 :(得分:3)
使用VB.NET中的DateDiff函数
以下是一些可以为您提供数年,数月和数天的代码:
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天
您可以添加更多逻辑来有条件地显示每个跨度,只有它不为零,并且还使用年份,年份,月份或月份和日期或天,但此代码应该让您朝着正确的方向前进。
答案 1 :(得分:0)
offtopic但相关:如果你想反过来做,那就是将“明天”解析为今天+ 1,你可以使用它:http://www.codeplex.com/DateTimeEnglishParse
答案 2 :(得分:0)
DateDiff可以为您提供正确的数据(两个日期之间的差异)。
但是正确的英文输出是什么?此功能的参数将很复杂:
Pub功能dateToEnglish(ByVal文化为Culture.Info,ByVal人格为人格, ByVal心情如情绪....)
例如,“14天”的正确答案应该是什么
“一个coupla周” “两周” “14天” “大约半个月” “双周”