c# - 年、月和日中 2 天之间的差异

标签 c# .net datetime

<分区>

我需要输出年、月、日中2天的差值。

使用时间跨度和减法我只能得到天数,但是否可以按年、月和天输出。

这是我目前所拥有的:

public string Leeftijdsverschil(DateTime p1, DateTime p2)
{
    if (p1 > p2)
    {
        DateTime verschil = p1.Subtract(TimeSpan.FromTicks(p2.Ticks));
        return verschil.ToString();
    }
    else
    {
        DateTime verschil = p2.Subtract(TimeSpan.FromTicks(p1.Ticks));
        return verschil.ToString();
    }
}

最佳答案

.NET 类型不会给你一个像样的答案,而不必编写代码来尝试一个答案并适当调整,但我的 Noda Time项目旨在处理此类事情。例如:

LocalDate x = new LocalDate(2013, 5, 21);
LocalDate y = new LocalDate(2014, 12, 15);
Period p = Period.Between(x, y);
Console.WriteLine("{0} {1} {2}", p.Years, p.Months, p.Days);

结果:

1 6 24

(即 1 年 6 个月 24 天)

如果您决定为此使用 Noda Time,您可以只在您的方法中执行此操作,在别处使用 DateTime 并在类型之间进行转换...但它会一般来说,更广泛地拥抱野田时代会更好。目的是让您的代码比仅使用 DateTime 更清晰。

关于c# - 年、月和日中 2 天之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27480886/

相关文章:

php - Mysql查询以确定给定的日期时间是否包含在日期时间间隔中

c# - nlog 异常布局以格式化异常类型、消息和堆栈跟踪

c# - 将 TPL 任务与 HttpWebRequest 结合使用

.net - Fluent NHibernate - 仅当不存在时才创建数据库模式

python-2.7 - 更改python中时间戳的格式

python - 日期时间格式的 Matplotlib 日期

c# - Automapper、Mapper 未初始化。使用正确的配置调用初始化

c# - 使用 MSBuild : Line is out of range in file 进行 SonarQube 分析

.net - 数据库记录的事务日志(批量更新)

c# - 陈旧元素引用异常 c# Selenium Webdriver