年,月,日不同C#中的计数器(日期)

时间:2013-07-05 11:24:38

标签: c# datetime

我想知道是否已经实施了Datecounter,它会计算它与日期之间的年份,月份和日期之间的差异?如果存在差异,该函数将计算差异的年数,月数和天数并存储它们,我们只需要使用Console.Writeline(timecomparer.yearDiffCounter);告诉它们差异多少年

例如(伪代码,不是100%正确)!

Date date1 = new Date("2013-07-05"); 
Date date2 = new Date("2010-07-05"); 
TimeComparer compare = new TimeComparer(); 

compare.differDate(date1,date2); //here it will count and give 3 years difference

4 个答案:

答案 0 :(得分:2)

使用Noda Time

LocalDate date1 = new LocalDate(2013, 07, 05);
LocalDate date2 = new LocalDate(2010, 07, 05);
Period period = Period.Between(date2, date1, PeriodUnits.YearMonthDay);
Console.WriteLine("{0} years, {1} months, {2} days",
                  period.Years, period.Months, period.Days);

// "3 years, 0 months, 0 days"

答案 1 :(得分:1)

强大的时间解决方案是Jon Skeet Noda Time

答案 2 :(得分:1)

public  string DateDiff(DateTime DateTime1, DateTime DateTime2)
{
    string dateDiff = null;

    TimeSpan ts1 = new TimeSpan(DateTime1.Ticks);
    TimeSpan ts2 = new TimeSpan(DateTime2.Ticks);
    TimeSpan ts = ts1.Subtract(ts2).Duration();
    dateDiff = ts.Days.ToString() + "day"
        + ts.Hours.ToString() + "hours"
        + ts.Minutes.ToString() + "minutest"
        + ts.Seconds.ToString() + "seconds";

    return dateDiff;
}

我的方式你可以改变。

答案 3 :(得分:-1)

C#中DateTime个对象的布尔运算产生TimeSpan个对象

DateTime Yesterday = DateTime.Now().AddDays(-1);
DateTime Today = DateTime.Now();

TimeSpan difference = Today - Yesterday;

然后,时间跨度可以告诉您它有多少天,小时,分钟,秒等。

如果您想要使用Timespan多年,请参阅this answer by brianary