Возврат точной разницы дат без использования DateDiff - PullRequest
1 голос
/ 19 января 2012

Мне нужно вернуть точную разницу между двумя датами в виде строки.

Если даты 01-FEB-2012 и 01-FEB-2014, функция должна вернуть " 2 года ".
Если даты 01-FEB-2012 и 01-MAR-2014, функция должна вернуть « 25 месяцев ».
Если разница не в точных годах или месяцах, она должна возвращать разницу в днях.

Я не хочу использовать DateDiff из пространства имен Visual Basic, поэтому код переносим на C #.

1 Ответ

3 голосов
/ 19 января 2012
'Assuming d1 < d2    
Public Function GetDateDiff(d1 as DateTime, d2 As DateTime) As String

    If d1.Day = d2.Day Then
        Dim yearDiff As Integer = d2.Year - d1.Year
        If d1.Month = d2.Month Then
            'Only year differs
            Return yearDiff & " years"
        Else
            'Month and year differs
            Dim monthDiff As Integer = d2.Month - d1.Month
            Return (yearDiff * 12 + monthDiff) & " months"
        End If
    Else
        Return (d2-d1).TotalDays & " days"
    End If
End Function
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...