c# - 英文日期差异

标签 c# .net vb.net date

接近重复

How do I calculate relative time?

How do I calculate someone’s age in C#?

有人知道 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/

相关文章:

c# - 使用配置类或参数实例化对象

c# - 使用 lambda 表达式与私有(private)方法

c# - 在 WPF Calendar 控件中设置显示月份

c# - 将命令行参数传递给我的应用程序的已运行实例

c# - RegEx 忽略部分字符串以提取文本

c# - 在 Web 浏览器控件中控制 Excel

c# - Xaml ListView 异常行为 (Windows Phone 8.1)

c# - 函数插值 C#

c# - JavaScriptSerializer 序列化内部属性成员

VB.NET VScrollBar,反向功能