0

我想知道是否已经实施了 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

4 回答 4

2

使用野田时间

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"
于 2013-09-06T01:49:15.373 回答
1

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

于 2013-07-05T11:30:08.070 回答
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;
}

我的方式你可以改变。

于 2013-09-06T01:49:23.523 回答
-1

DateTimeC#中对象的布尔运算产生TimeSpan对象

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

TimeSpan difference = Today - Yesterday;

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

如果您想要时间跨度的数年,请参阅brianary 的这个答案

于 2013-07-05T11:30:23.457 回答